Cで「単一行コメント」マクロを作成しようとしています。これは、いくつかのグローバル マクロ定義に従って、コード行をコメント アウトするために条件付きで使用されます。この 記事と 同じ 考え方です .
このコードの多くの順列を試してみると、コンパイラからエラー メッセージが表示され続けます。
たとえば、そのページのコード サンプルを直接たどると、次のようになります。
#define COMMENT SLASH(/)
#define SLASH(s) /##s
#define DEBUG_ONLY COMMENT
DEBUG_ONLY a = b; // <-- line #83
GCC は次のエラーを返します。
prog.c:83:1: エラー: "/" と "/" を貼り付けても有効な前処理トークンが得られません
prog.c:83: エラー: '/' トークンの前に式が必要です
前述のように、私はそのテーマで遊んで、多くのバリエーションを試しましたが、すべて同様の診断に失敗しました.
この記事のコードがうまくコンパイルされないのはなぜですか?