jn1*_*1kk 2 c printf format-specifiers
当我注意到这段代码时,试图弄清楚函数中的堆栈损坏错误:
fprintf( fp, "\n%s %3c %12s %2c %12s %2c %12s %2c %12s %2c"
"%12s %2c %12s",
xys_field[3], x,
xyzFunc(val1, 0), x,
xyzFunc(val2, 0), x,
xyzFunc(val3, 0), x,
xyzFunc(val4, 0), x,
xyzFunc(val5, 0), x,
xyzFunc(val6,0) );
Run Code Online (Sandbox Code Playgroud)
我问的是关于这一行"\n%s %3c %12s %2c %12s %2c %12s %2c %12s %2c" "%12s %2c %12s",我甚至不明白这是如何编译的,因为我从未见过两种格式如此相互跟随.谢谢你的帮助.
这些不是两种格式 - 注意没有逗号,或者除了空格之外的任何东西.这是用于延续长字符串的C语法.在C中,这些是等价的:
"abc" "def"
"abcdef"
Run Code Online (Sandbox Code Playgroud)
请注意,这仅适用于字符串文字; 你不能连接字符串变量.这是语法错误:
string1 string2
Run Code Online (Sandbox Code Playgroud)