0

次のコードがあります。

#ifdef __SYM_TRACE__
#define SYM_TRACE( L, F )   { SETTRACE_LEVEL(L); tracefunc F; }
#define SYM_TRACE2( F )     { SETTRACE_LEVEL(SYM_MODULE); tracefunc F; }
#else
#define SYM_TRACE( L, F )
#define SYM_TRACE2( F )
#endif

問題は、SYM_TRACEフラグがどこにあり、どのように有効にするかということです。コードにはSYM_TRACEという名前のマクロはありませんが、これはどこから取得されるのでしょうか?

またまた初歩的な質問です。マクロ名の前後の __ の意味を誰か説明してください。

ありがとう、サニー

4

2 に答える 2

1

答えはもうあるので足し算と考えてください

次のオプションを実行して有効にすることができます__SYM_TRACE__

#define __SYM_TRACE__表示されているコードで慣れてきたヘッダーファイルに書き込みます。 (#ifndef endif でガードすることを忘れないでください)

@Ishmeet で提案されているように、Makefile に追加できます。-D__SYM_TRACE__

今あなたが話しているのであれば_Name_、それはユーザーが定義した標準(または定義済み)マクロとの違いを作る方法__WCHAR_TYPE__です__WINT_TYPE_

于 2013-07-25T05:52:15.640 に答える
1
__SYM_TRACE__ 

おそらくmakeファイルで定義されており、__は単なる名前です。これに意味があるとは思いません。おそらく、他のプラットフォームへの移植中に発生する可能性があります。ほとんどの C コンパイラは、オプション -D を受け入れてシンボルを定義します。

gcc -D__SYM_TRACE__ file.c

于 2013-07-25T05:40:30.723 に答える