my_function()が成功した場合は0、失敗した場合は-EINVALを返した場合、これらの2つの文は同等ですか?次の文はCで同等ですか?
if(my_function()){
と私は1がTrueブール値であり、0はCで偽ブール値なので、最初の文がある場合は、my_function(if文を失敗した場合、私はわからなかったことを承知している
if(my_function() == 0){
)は正常に0を返しました。
my_function()が成功した場合は0、失敗した場合は-EINVALを返した場合、これらの2つの文は同等ですか?次の文はCで同等ですか?
if(my_function()){
と私は1がTrueブール値であり、0はCで偽ブール値なので、最初の文がある場合は、my_function(if文を失敗した場合、私はわからなかったことを承知している
if(my_function() == 0){
)は正常に0を返しました。
booleanコンテキスト式のCでは、a
は通常式a != 0
と等価です。これはあなたの第二の変形例が、最初の1に相当しないことを意味し、あなたの第一の変形
if(my_function()){
が順番に
if(my_function() != 0){
これと同等であることを意味しています。実際にはと反対で、最初のものはです。あなたの最初のバージョンは失敗をチェックし、2番目のバージョンは成功をチェックします。
発現は0に等しくない場合に比較C標準(6.8.4.1ザif文)の両方の形態において
2によれば、最初のサプがを実行する....
と、(6.5.9等価演算子)
3 ==(等しい)と!=(等しくない)演算子は類似しています にその下precedence.108を除く関係演算子)演算子利回りの各 1指定された関係がし、それが偽である 場合は0 ....だから、
この中での発現真である場合ifステートメント
if(my_function()){
は、関数がゼロ以外の値を返す場合、0と等しくないものと比較します。この中
関数が0を返した場合の文
if(my_function() == 0){
表現my_function() == 0
が0に等しくない比較した場合ので、この場合には関係が真であると利回り1
ので、これらの記述は、それぞれ逆向きである場合その他。
同等のステートメントは、ヘッダ<iso646.h>
if(not my_function()){
と
if(my_function() == 0){
あの... "等価" を含むように
または場合でしょうか?彼らはお互いに実際に*反対です*。最初のバージョンは失敗をチェックし、2番目のバージョンは成功をチェックします。 'if(my_function()!= 0){'は最初のバージョンと全く同じです。 – AnT
それは私の質問に答えます。あなたがその答えをしたいのなら、私はそれを受け入れます。 – Paradox