私が書いた共有オブジェクトのヘッダーファイルに、次のようなDEBUG_PRINTマクロが定義されています。
lib_mylib.h:
#ifdef DEBUG
#define DEBUG_TEST 1
#else
#define DEBUG_TEST 0
#endif
#define DEBUG_PRINT(fmt, args...) \
do { if (DEBUG_TEST) fprintf(stderr, "%s:%d:%s(): " fmt, \
__FILE__, __LINE__, __FUNCTION__, ##args); } while (0)
このライブラリを使用するacファイルから設定しました
#DEFINE DEBUG 1
これにより、共有オブジェクト内で呼び出された場所でDEBUG_PRINTステートメントが正常に使用されます。ただし、cファイルでステートメントを使用すると、コンパイルされますが実行されません-これはなぜですか?