使用C / C ++预处理程序,是否可以将源文件中的行计数为宏或某种编译时可用的值?例如,我可以在下面替换MAGIC1,MAGIC2并MAGIC3在使用时以某种方式获得值4 MAGIC3吗?
MAGIC1 // can be placed wherever you like before the relevant 
       // lines - either right before them, or in global scope etc.
foo(); MAGIC2
bar(); MAGIC2
baz(); MAGIC2
quux(); MAGIC2
// ... possibly a bunch of code here; not guaranteed to be in same scope ...
MAGIC3
笔记:
- 编译器对预处理器功能的扩展是可以接受的,但不是所希望的。
 - 如果只有在某些C ++(而不是C构造)的帮助下才有可能,那也是可以接受的,但也是不可取的(即,我希望某些适用于C的东西)。
 - 显然,这可以通过通过一些外部处理器脚本运行源文件来完成,但这不是我要的。
 
__COUNTER__和/或BOOST_PP_COUNTER?
                int arr[MAGIC4]并获取代码中先前计数的部分中的行数。
                
__LINE__代表当前行号