#include <stdio.h>
#define VAR cc
int main(void) {
int ccc = 9;
printf("hell loo %d", VARc);
return 0;
}
を働いていない、このコードの私の理解では、どこでもプリプロセッサがVARを見つけたことを意味し、それが故にprintfが出ccc適切な定義された変数
にCPPプリプロセッサを使用することが可能に です: {-# LANGUAGE CPP #-}
module MyModule (
main
#ifdef TEST
,functionUnderTest
,functionAlsoUnderTest
#endif
) where ....
徒党を組んで、.cabalで以下の設定が機能するように
マクロから展開されたコードでg ++警告を無効にしようとしています。私の理解では、_Pragmaはマクロの使用法に従うべきで、g++してコンパイルされたときに、これはWparenthesesをトリガしないでください。 #include <stdio.h>
#define TEST(expr) \
int a = 1; \
_Pragma("GCC diagnostic pu
私はX Macroコンセプトを適用しようとしています。これは、すべての構造体メンバをカスタムのデフォルト(無効)値に初期化する可能性があります。私はC-macros could refer to other macros思っ struct foo {
int a; int b; int c;
};
static inline void foo_invalidate(struct f