请问“zero-length ms_printf format string [-Wformat-zero-length]”是什么意思?
答案:2 悬赏:20
解决时间 2021-01-11 15:50
- 提问者网友:趣果有间
- 2021-01-11 11:21
请问“zero-length ms_printf format string [-Wformat-zero-length]”是什么意思?
最佳答案
- 二级知识专家网友:人類模型
- 2021-01-11 12:16
我坚信你用的是GCC(因为我用的GCC也有这条错误信息)!第一眼看见[-Wxxx]就认出来了
比如:
std::printf(""); // 字符串长度为空。
又或者:
const char* const p = "";
std::printf(p);
而且,你的编译设置是很比较严格的,用了-Wall (但我的更严格)
还有的就是,现在GCC都有中文版的了,如果你是在Windows下面编程,可以在www.mingw.org下面下载个新版的(是中文的了)
追问:请问printf中字符为空是为什么会有警告啊,似乎其中可以空着的..初学者不是很懂,麻烦了!
追答:为空的话,这一句其实就是多余的——这样,会引编译器的优化,于是在程序里就被做出没有这句printf的,而且为空的话,有的不好的printf实现可能会做溢出之类的问题。
比如:
std::printf(""); // 字符串长度为空。
又或者:
const char* const p = "";
std::printf(p);
而且,你的编译设置是很比较严格的,用了-Wall (但我的更严格)
还有的就是,现在GCC都有中文版的了,如果你是在Windows下面编程,可以在www.mingw.org下面下载个新版的(是中文的了)
追问:请问printf中字符为空是为什么会有警告啊,似乎其中可以空着的..初学者不是很懂,麻烦了!
追答:为空的话,这一句其实就是多余的——这样,会引编译器的优化,于是在程序里就被做出没有这句printf的,而且为空的话,有的不好的printf实现可能会做溢出之类的问题。
全部回答
- 1楼网友:洎扰庸人
- 2021-01-11 13:37
0长度 打印字符串格式
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯