1
GCCに0が引数として渡されたことが検出されたとき(つまり、コンパイル時に可能な場合)、GCCに警告を出すようにコードに特別な指示を加えることができると言われました。0が引数として渡された場合、GCCは警告を発行できますか?
私はそれを探しましたが、それを見つけることができませんでした。これは本当ですか?
GCCに0が引数として渡されたことが検出されたとき(つまり、コンパイル時に可能な場合)、GCCに警告を出すようにコードに特別な指示を加えることができると言われました。0が引数として渡された場合、GCCは警告を発行できますか?
私はそれを探しましたが、それを見つけることができませんでした。これは本当ですか?
あなたはヌルポインタに警告するために使用することができますfunction attributeがあります:
void foo(void *data) __attribute__((nonnull));
int main(void)
{
foo(0);
return 0;
}
$ gcc -Wall -c t.c
t.c: In function ‘main’:
t.c:5:5: warning: null argument where non-null required (argument 1) [-Wnonnull]
私はビルトインしかし整数型に対して0を確認するために何を認識していませんよ。
LinuxカーネルのさまざまなBUILD_BUG_*
マクロで、あなたのニーズに合ったものが見つかるかもしれません。彼らはinclude/linux/kernel.h
です。 (Cross-referenced here)