Answers:
该warning
指令可能是最接近您的指令,但是它并不完全独立于平台:
#warning "C Preprocessor got here!"
AFAIK可以在除MSVC之外的大多数编译器上使用,您必须在其上使用pragma
指令:
#pragma message ( "C Preprocessor got here!" )
#define WARNING(msg) _Pragma("message " #msg)
另一个解决方案是使用注释加上外壳脚本来处理它们。这需要一定的纪律(或捕获错别字的shell脚本)。
例如,我添加格式化的注释//TODO
,然后添加一个外壳脚本,该脚本将所有注释收集到报表中。
对于更复杂的用例,您可以尝试编写自己的简单预处理器。例如,您可以将源编辑为*.c2
文件。简单的预处理器将读取源代码,查找//TODO
并将其写入printf("TODO ...")
输出*.c
文件。
你不能 预处理程序在C代码之前进行处理。没有预处理器指令可打印到屏幕上,因为未执行预处理器代码,它用于生成将被编译为可执行代码的C代码。
出现任何问题:
#ifdef ...
printf("Hello");
#endif
因为这是预处理器所能做的一切。
#ifdef _LINUX #define #preprocmsg "#warning" else #define #preprocmsg "#pragma message"
...我将不得不尝试,但本能告诉我答案是否定的。