{
.........上面为变量的定义
if(!(pFile = fopen(File_Name,"r+b")))
return 0;
fread(&myDosHeader,sizeof(IMAGE_DOS_HEADER),1,pFile);
e_lfanew=myDosHeader.e_lfanew;
e_magic=myDosHeader.e_magic;
if(myDosHeader.e_magic!=IMAGE_DOS_SIGNATURE)
{
return 0;
fclose(pFile);
}
else
{
fseek(pFile,e_lfanew,SEEK_SET);
fread(&myNtHeader,sizeof(IMAGE_NT_HEADERS),1,pFile);
Si=myNtHeader.Signature;
if(Si==IMAGE_NT_SIGNATURE)
{//判断是否是 pe00
fclose(pFile);
return 1;
}
else
{
fclose(pFile);
return 0;
}
}
fclose(pFile);//以下两条语句不是永远都不会执行吗?????是否可以省落啊?
return 1;//该语句是否永远都不会执行呢?????谢谢指点这烦人的return语句啊.
}
对于这样多个return语句的函数,是不是只要执行了一个return语句就返回到调用者的地方去呢?还是只退出一层{}?
只要执行了一个return语句就返回到调用者的地方。