【发布时间】:2013-01-01 11:16:25
【问题描述】:
我经常想做这样的事情:
unsigned char urlValid[66] = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789-_.~";
...或:
unsigned char listOfChar[4] = "abcd";
...也就是说,从字符串文字初始化字符数组并忽略该文字中的空终止符。非常方便,而且我可以做sizeof urlValid之类的事情并得到正确的答案。
但不幸的是它给出了错误initializer-string for array of chars is too long。
有没有办法:
- 关闭此特定事件的错误和警告(即,如果在初始化 char 数组时没有空终止符的空间)
- 做得更好,保持便利性和可读性?
【问题讨论】:
-
std::string怎么样? -
@David 我主要用 C 编写代码,有什么替代方案吗?
-
如果这是 C,则删除 C++ 标签。
-
等等,你想在 C++ 项目中使用 C?你的队友会恨你的……
-
@Alec,您是否知道 C 和 C++ 是不同的语言,它们“偶然”共享某些语法和名称中的一个字符?
标签: c syntax coding-style