我有以下声明:
printf("name: %s\targs: %s\tvalue %d\tarraysize %d\n", sp->name, sp->args, sp->value, sp->arraysize);
Run Code Online (Sandbox Code Playgroud)
我想打破它.我尝试了以下但它不起作用.
printf("name: %s\t
args: %s\t
value %d\t
arraysize %d\n",
sp->name,
sp->args,
sp->value,
sp->arraysize);
Run Code Online (Sandbox Code Playgroud)
我怎么能分手呢?
Jam*_*lis 160
如果要将字符串文字分成多行,可以将多个字符串连接在一起,每行一个,如下所示:
printf("name: %s\t"
"args: %s\t"
"value %d\t"
"arraysize %d\n",
sp->name,
sp->args,
sp->value,
sp->arraysize);
Run Code Online (Sandbox Code Playgroud)
pmg*_*pmg 20
只是一些其他格式选项:
printf("name: %s\targs: %s\tvalue %d\tarraysize %d\n",
a, b, c, d);
printf("name: %s\targs: %s\tvalue %d\tarraysize %d\n",
a, b, c, d);
printf("name: %s\t" "args: %s\t" "value %d\t" "arraysize %d\n",
very_long_name_a, very_long_name_b, very_long_name_c, very_long_name_d);
Run Code Online (Sandbox Code Playgroud)
您可以在主题上添加变体.这个想法是printf()
转换speficiers和各自的变量都"很好地"排列(对于某些"很好"的值).
qrd*_*rdl 19
C编译器可以将相邻的字符串文字粘合成一个,就像
printf("foo: %s "
"bar: %d", foo, bar);
Run Code Online (Sandbox Code Playgroud)
预处理器可以使用反斜杠作为行的最后一个字符,不计算CR(或CR/LF,如果您来自Windowsland):
printf("foo %s \
bar: %d", foo, bar);
Run Code Online (Sandbox Code Playgroud)
在 C 中拆分复杂函数的事实上的标准方法是每个参数:
printf("name: %s\targs: %s\tvalue %d\tarraysize %d\n",
sp->name,
sp->args,
sp->value,
sp->arraysize);
Run Code Online (Sandbox Code Playgroud)
或者,如果您愿意:
const char format_str[] = "name: %s\targs: %s\tvalue %d\tarraysize %d\n";
...
printf(format_str,
sp->name,
sp->args,
sp->value,
sp->arraysize);
Run Code Online (Sandbox Code Playgroud)
您不应该拆分字符串,也不应该使用\
中断 C 行。这样的代码很快就变得完全不可读/不可维护。