【发布时间】:2018-10-25 11:37:19
【问题描述】:
我有要在预处理期间加载的数据文件。
DATAFILE :
CAR(C1, C2, C3)
可以有 n 辆汽车 (C1, C2....Cn),目前是 3。 C1,.. 是具有特定值的枚举字段,例如 C1=5、C2-8、c3-10。
我想将此数据填充到汽车数组CAR_SUPPORTED[MAX_CARS] 中,这样
CAR_SUPPORTED[C1] = 1 and similarly for C2,C3.. so on.
我尝试了可变参数宏:
int CAR_SUPPORTED[] ={
#define CAR(...) __VA_ARGS__};
#include "car.data"
但这可能只是将 5, 8, 10 复制到 0,1,2 索引。
我将如何编写一个宏,例如 CAR_SUPPORTED[C1] = 1 等等。 有什么建议吗?
【问题讨论】:
-
int CAR_SUPPORTED[MAX_CARS] ={==>int CAR_SUPPORTED[] ={即让编译器计算元素的数量。 -
为什么给出这个问题 -1 ?不是要求有效的编程逻辑吗?
标签: c c-preprocessor variadic-macros