有任何方法让它不评估我的代码库的某些部分?

时间:2015-10-15 12:03:41

标签: preprocessor-directive

点击" ## - 运算符不会在定义中组成标记"使用 coan 和宏定义如下:

#define MY_STRINGIFY_CONCAT_MACRO(_x) \
   a = #_x; \
   b = #_x; \
   c = prefix_ ## _x;

......从编译器的角度来看,这是完全有效的。

将此代码放在x.c中,然后

$ coan source -gw x.c
coan: /home/andreasl/c/onion/no_ear/x.c: line 4: error 0x0081b: ##-operator does not compose a token in definition >>a = #_x; b = #_x; c = prefix_ ## _x;<< of "MY_STRINGIFY_CONCAT_MACRO(_x)"

(对于那些有兴趣调试它的人:如果省略第一个或第二个字符串化,它就不会发生。)

我不希望很快就能解决这个问题,我想知道是否有一些(未记录的)方式来标记我的代码的某些部分是否被忽略&#39; (因此通过coan传递&#39;),例如一些特别的

#ifndef COAN_PLEASE_ACCEPT_AND_LEAVE_AS_IS
  ...
#endif

...我可以用?

附上这样的代码

或任何其他想法如何优雅地处理这个? (我目前正在编写额外的代码,允许我省略两个字符串中的一个。)

> coan --version
coan, version 6.0.1 for 64 bit Unix/Linux(built Sep 15 2014,18:42:46)

0 个答案:

没有答案