作者:衴u神是欧豪 | 来源:互联网 | 2023-05-21 15:39
我无法将关键字放入数组中.这是我的阵列:
char keywords [] = {'auto', 'break', 'case', 'char', 'continue', 'do', 'default', 'const', 'double', 'else', 'enum', 'extern', 'for', 'if', 'goto', 'float', 'int', 'long', 'register', 'return', 'signed', 'static', 'sizeof', 'short', 'struct', 'switch', 'typedef', 'union', 'void', 'while', 'volatile', 'unsigned'};
但每当我运行我的程序时,我都会继续
warning: overflow in implicit constant
coversion [-Woverflow]
错误.
有谁知道这个错误意味着什么或我如何成功地将C关键字变成数组?
1> Iharob Al As..:
你不使用单引号'
来分隔c中的字符串,因为你需要双qoutes "
.
而且你需要一个指针数组,所以你的声明应该是 char *keywords[]
const char *keywords[] = {
"auto",
"break",
"case",
"char",
"continue",
"do",
"default",
"const",
"double",
"else",
"enum",
"extern",
"for",
"if",
"goto",
"float",
"int",
"long",
"register",
"return",
"signed",
"static",
"sizeof",
"short",
"struct",
"switch",
"typedef",
"union",
"void",
"while",
"volatile",
"unsigned"
};
单引号用于字符常数,且存在多字符字符常数,但这些都是实现定义的,单个字符的字符常数等'a'
给出了一个整数值,其是该字符的ASCII码.
您似乎正在尝试编写解析器,您是否考虑使用bison
+ flex
或任何其他解析器生成器?