我的version.c文件包含以下行:
const uint8_t ID_SoftwareId[] = { 'A', 'B', '0', '1', '0', '\0'};
我想通过定义将A
和B
传递到此文件中。
我累了few thigs,但我通常会收到来自gcc的Too many initializers
警告。
有什么想法吗?
答案 0 :(得分:0)
您是否尝试过简单:
const uint8_t ID_SoftwareId[] = { DEFA, 'B', '0', '1', '0', '\0'};
然后:
gcc -DDEFA=\'A\' ...
WORKSFORME TM
答案 1 :(得分:0)
概念证明:
#define TOKENIZE(x) #x
#define SINGLECHAR(x) (*(TOKENIZE(x)))
int main()
{
char c = SINGLECHAR(DEFINITION);
return 0;
}
编译并运行:
cpp -DDEFINTION=Q test.c
输出
# 1 "test.c"
# 1 "<built-in>"
# 1 "<command-line>"
# 1 "test.c"
int main()
{
char c = (*("Q"));
return 0;
}