May*_*ank 3 c string standards append
我有两个我要追加的C字符串,结果应该分配给lhs变量.我看到了一个静态初始化代码,如:
char* out = "May God" "Bless You";.
char* out = "May God" "Bless You";
输出真的"May GodBless You"在打印出来.我理解这个结果可以输出一些未定义的行为.
"May GodBless You"
代码实际上是在生产中,从未给出错误的结果.并不是说我们只在一个地方发表过这样的声明.可以在非常稳定的代码的多个地方看到它并用于形成sql查询.
C标准是否允许这种连接?
Sim*_*one 6
是的,它是有保证的.
摘自http://en.wikipedia.org/wiki/C_syntax#String_literal_concatenation:
相邻的字符串文字在编译时连接在一起; 这允许将长字符串拆分为多行,并且还允许在编译时将C预处理器定义和宏生成的字符串文字附加到字符串
归档时间:
15 年 前
查看次数:
4186 次
最近记录: