アカウント名:
パスワード:
- if (!vma->vm_flags & VM_EXECUTABLE) + if (!(vma->vm_flags & VM_EXECUTABLE))
ディレクトリ検査では, 以下のように書け. と見たりするのですが,
if ((stat.st_mode & S_IFDIR) == S_IFDIR) { }
if (stat.st_mode & S_IFDIR) { }
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
人生unstable -- あるハッカー
oprofile author needs to learn C (スコア:1)
ディレクトリ検査では, 以下のように書け. と見たりするのですが,
以下のようにしたら, なぜいけないんですか? (マクロ S_ISDIR も上のようになっている)Re:oprofile author needs to learn C (スコア:1, 参考になる)
(15&3) == 3 と (15&3) はどちらも not equal 0、
( 8&3) == 3 と ( 8&3) はどちらも equal 0 となりますが、
( 1&3) == 3 と ( 1&3) は、一致しません。
bitmaskと値がたまたま同じだっただけなので、省略は常に可能だとはかぎりません。
# あと、普段から conditionまわりは booleanを返すように
# しておいたほうが bugへっていいですね。
Re:oprofile author needs to learn C (スコア:1)
if (stat.st_mode & S_IFDIR) {
}
でいいじゃないか?という疑問が出るのは当然かと。
とはいえプログラムする上で、全てのフラグがビットマスクとは限らないから、
if ((stat.st_mode & S_IFDIR) == S_IFDIR) {
}
と記述する癖を付けておく方がよいでしょうね。
Re:oprofile author needs to learn C (スコア:1)
Re:oprofile author needs to learn C (スコア:0)