今回質問したいのは、if文です(初歩的なものですみません。。。。)
とした場合、必ず両方(fsync/close)とも実行されるのか?、それとも、
どちらか一方がtrueになれば抜けるのか?が知りたいです。
理想としては、両方実行された結果で判定を希望なのですが、、、、
vs2010 C++ Consoleで試した感じでは、最初の式がtrueの時点で抜けているように
みえました。
int call_a(int *a){
*a -= 10;
return 1;
}
int call_b(int *b){
*b += 10;
return 1;
}
main(){
int a = 100;
int b = 200;
if(call_a(&a) || call_b(&b))
printf("OK\n");
else
printf("NG\n");
printf("a:%d, b:%d\n", a, b);
}
-----
OK
a:90, b:210
-----
call_aのreturnを1にすると
-----
OK
a:90, b:200
-----
また、この処理部分は、Compilerで差があるのでしょうか?
申し訳ありませんが、教えていただきたいです。
よろしくお願いします。