2012-02-16 6 views
1

GCCに0が引数として渡されたことが検出されたとき(つまり、コンパイル時に可能な場合)、GCCに警告を出すようにコードに特別な指示を加えることができると言われました。0が引数として渡された場合、GCCは警告を発行できますか?

私はそれを探しましたが、それを見つけることができませんでした。これは本当ですか?

答えて

3

あなたはヌルポインタに警告するために使用することができます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

関連する問題