- Win32API質問箱 Build121 [転載禁止]©2ch.net
479 :デフォルトの名無しさん[sage]:2015/10/31(土) 09:29:08.11 ID:/3zA5kgS - >>478
こんなのが両方存在するからややこしい。 int err = func(); if ( ! err ) { } if ( func() ) { } さすがにboolだったら成功をfalseとするやつはいないだろう。
|
- Win32API質問箱 Build121 [転載禁止]©2ch.net
483 :デフォルトの名無しさん[sage]:2015/10/31(土) 12:29:13.90 ID:/3zA5kgS - >>481
よくあるひとつの「慣習」だな。0以外の値がエラーだからエラーの有無を表す真偽値として扱うという。 それ自体糞だが。
|
- Win32API質問箱 Build121 [転載禁止]©2ch.net
487 :デフォルトの名無しさん[sage]:2015/10/31(土) 13:00:30.50 ID:/3zA5kgS - >>485
「ネーミングがクソ」ってのはそっちのが的確だな。
|
- Win32API質問箱 Build121 [転載禁止]©2ch.net
500 :デフォルトの名無しさん[sage]:2015/10/31(土) 19:29:57.81 ID:/3zA5kgS - まぁ、結論は「BOOLやHANDLEを暗黙に真理値とみなす条件式は書くな」ってことだな。
BOOLをTRUE/FALSEと比較する式を書くなという人がいるようだが、ここは明示的に比較するのが正しい。
|
- Win32API質問箱 Build121 [転載禁止]©2ch.net
506 :デフォルトの名無しさん[sage]:2015/10/31(土) 23:44:09.17 ID:/3zA5kgS - そこは0と比較するんだよ。0,-1,その他、なら0か-1と明示的に比較する。
some_func()がBOOLのときif(some_func())とするのが糞。 BOOLだがTRUEを返すとされていないならif(some_func() == TRUE)はそもそも仕様と合致していない。
|