C中数组中的关键字
keywords in array in C
我在将关键字放入数组时遇到问题。这是我的数组:
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'};
但是每当我 运行 我的程序时,我总是得到
警告:隐式常量溢出
覆盖 [-Woverflow]
错误。
有谁知道这个错误是什么意思,或者我如何才能成功地将 C 关键字放入数组中?
您不使用单引号 '
来分隔 c 中的字符串,为此您需要双引号 "
.
你需要一个指针数组,所以你的声明应该是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"
};
单引号用于字符常量,并且存在 多字符 字符常量,但那些是实现定义的,单个字符 字符常量 like 'a'
给出一个整数值,它是该字符的ascii码。
看来您正在尝试编写解析器,您是否考虑过使用 bison
+ flex
或任何其他解析器生成器?
我在将关键字放入数组时遇到问题。这是我的数组:
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'};
但是每当我 运行 我的程序时,我总是得到
警告:隐式常量溢出 覆盖 [-Woverflow]
错误。
有谁知道这个错误是什么意思,或者我如何才能成功地将 C 关键字放入数组中?
您不使用单引号 '
来分隔 c 中的字符串,为此您需要双引号 "
.
你需要一个指针数组,所以你的声明应该是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"
};
单引号用于字符常量,并且存在 多字符 字符常量,但那些是实现定义的,单个字符 字符常量 like 'a'
给出一个整数值,它是该字符的ascii码。
看来您正在尝试编写解析器,您是否考虑过使用 bison
+ flex
或任何其他解析器生成器?