49753


stdio.hをincludeした時のNULLの定義を探そうと/usr/include/の下位のファイルをgrep -rしてみたところ

[code]

    /usr/include/dbus-1.0/dbus/dbus-macros.h:#    define NULL        (0L)
    /usr/include/dbus-1.0/dbus/dbus-macros.h:#    define NULL        ((void*) 0)
    /usr/include/glib-2.0/glib/gmacros.h:#  define NULL        (0L)
    /usr/include/glib-2.0/glib/gmacros.h:#  define NULL        ((void*) 0)
    /usr/include/x86_64-linux-gnu/bits/libio.h:#  define NULL (__null)
    /usr/include/x86_64-linux-gnu/bits/libio.h:#   define NULL ((void*)0)
    /usr/include/x86_64-linux-gnu/bits/libio.h:#   define NULL (0)
    
[/code]

以上が候補として上がってきたのですが。  
結果の通り複数あるようで、どのマクロを使っているのかわかりません。

確実に調べる方法をご存知でしたらご教示ください。  
よろしくお願いします。


CC BY-SA 4.0
2018-10-29T04:02:32.467
49752
2018-10-29T04:32:24.213
2018-10-29T04:32:24.213
3060
30707
question
linux c
NULLが定義されたヘッダファイルを確認するには


`(g)cc -E ファイル名.c ファイル名.pp`と実行すると、プリプロセッサー処理だけが行われたファイルが`ファイル名.pp`に出力されます。

それを見て、NULLが何に置き換えられているか？で判断出来ませんか？


CC BY-SA 4.0
2018-10-29T04:09:08.363
49753
2018-10-29T04:09:08.363
14745
49752
answer