我目前正在使用__COUNTER__我的C库代码中的宏来生成唯一的整数标识符.它工作得很好,但我看到两个问题:
__COUNTER__可能会混淆.因此,我希望实现与__COUNTER__我自己的等价物.
我所知道的,但替代品并不需要使用:
__LINE__ (因为每行多个宏不会获得唯一ID)BOOST_PP_COUNTER(因为我不想要boost依赖)BOOST_PP_COUNTER证明这可以做到,即使其他答案声称这是不可能的.
本质上,我正在寻找一个头文件"mycounter.h",这样
#include "mycounter.h"
__MYCOUNTER__
__MYCOUNTER__ __MYCOUNTER__
__MYCOUNTER__
Run Code Online (Sandbox Code Playgroud)
将进行预处理gcc -E,以
(...)
0
1 2
3
Run Code Online (Sandbox Code Playgroud)
不使用内置__COUNTER__.
注:此前,这个问题被标记为重复这个,它使用交易__COUNTER__,而不是回避它.