printf("abcdef,a=%d,b=%s,",
"xyz, abc=%s",
a,
b,
abc)
这个代码的原本意思,是输出:”abcdef,a=%d,b=%s, xyz, abc=%s“。因为行太长,想使用双引号的连接字符串功能,但是习惯性的在换行之前,添加了一个逗号,编译没有问题,但是在运行时,由于参数对应错位,导致SegV。
正确的代码是:
printf("abcdef,a=%d,b=%s,"
"xyz, abc=%s",
a,
b,
abc)

printf("abcdef,a=%d,b=%s,",
"xyz, abc=%s",
a,
b,
abc)
这个代码的原本意思,是输出:”abcdef,a=%d,b=%s, xyz, abc=%s“。因为行太长,想使用双引号的连接字符串功能,但是习惯性的在换行之前,添加了一个逗号,编译没有问题,但是在运行时,由于参数对应错位,导致SegV。
正确的代码是:
printf("abcdef,a=%d,b=%s,"
"xyz, abc=%s",
a,
b,
abc)