相关疑难解决方法(0)

计算C预处理器中两个代码位置之间的行数

我想使用C预处理器来计算两个代码位置之间的行数.基本想法是这样的:

#define START __LINE__
static char* string_list[] = {
    "some string",
    "another string",
    ...
    "last string"
};
#define END __LINE__
#if END - START > 42
    #error Too many entries
#endif
Run Code Online (Sandbox Code Playgroud)

当然这不起作用,因为在这种情况下START,END仅仅是对__LINE__宏的重新定义.
我正在玩###运算符,但我无法让预处理器进行评估START,END而预处理器正在运行.

我的问题是:这有可能吗?

不能选择在运行时检查数组的大小.
预先感谢任何提示或想法!

c c-preprocessor

5
推荐指数
2
解决办法
550
查看次数

标签 统计

c ×1

c-preprocessor ×1