抱歉,如果这可以通过 Google 解决 - 我找不到任何东西。
char foo[4] = "abcd";
在 C++ 中无效(由于需要 '\0' 终止符)但 IIRC 在 C 中有效——对吗?
我有一组结构,其中包含大量“固定长度”字符字段,这些字段将被空白填充而不是 '\0' 终止。我希望能够进行通常的结构初始化——你知道
mystruct bar = {17, "abcd", 0x18, "widget ", ...
但我不能在 C++ 中做到这一点。我想一种解决方案是将所有像这样的初始化结构放入他们自己的 C(不是 ++)源模块中。我试图避免的丑陋、费力的解决方案是
mystruct bar = {17, {'a', 'b', 'c', 'd'}, 0x18, {'w', 'i', 'd', 'g', 'e', 't', ' ', ' '}, ...
有没有好的 C++ 解决方案?一个聪明的宏可以有效地让“abcd”成为没有'\0'终止符的char [4]?
谢谢,查尔斯