【发布时间】:2019-06-27 11:40:16
【问题描述】:
如何使用长度为 4 的字符数组(字符串文字)来表示 4 字节整数?
我想用一个长度为 4 的字符串文字来代替一个 4 字节的整数,这将在这个 case 语句中使用。 我想这样写:
case "\x0ATst":
printf("FOUND TIME STAMP");
break;
不是:
case 0x7473540A:
printf("FOUND TIME STAMP");
break;
因为主要代码更易于阅读。
我在 google 上搜索了“string to int”,但只找到了atoi() 这样的答案。
【问题讨论】:
-
"\x0ATst"是一个字符数组(字符串)。字符数组不能用作大小写标签。 -
case 标签必须是整数常量表达式,因此即使在宏的帮助下也不能使用字符串文字。你能做的最好的就是
X('D','A','T','A') -
@KYHSGeekCode 不,你不能,句号。
-
@KYHSGeekCode 然后使用宏!
-
"但我想知道我是否可以让编译器自动替换" 如果这可行,它不可行,您需要确保将 sting 文字放置在地址
0x7473540A,你不能。
标签: c switch-statement byte literals