两个printf语句的比较

标签 c string compiler-construction printf

请看下面的两个c语句

printf("a very long string");
printf("%s","a very long string");

它们产生相同的结果,但在幕后肯定有一些不同,那么有什么不同,哪个是更好 ?请分享您的想法!

最佳答案

如果你知道字符串内容是什么,你应该使用第一种形式,因为它更紧凑。如果要打印的字符串可能来自用户或任何其他来源,以至于您不知道字符串内容是什么,则必须使用第二种形式;否则,您的代码将对 format string injection attacks 开放.

关于两个printf语句的比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6764369/

相关文章:

java - 在java中强制警告

parsing - 如何判断一种语言是否是LL(1) LR(0) SLR(1)

android - __android_log_print 输出 '/n' 换行 CR

c - 在 C 中,如何在不使用 ENTER 的情况下获取输入(整数)?

c - 如果多个 pthread 使用相同的函数会发生什么

java - 截断字符串并消除重复项的算法(不区分大小写)

python执行列表和函数列表

c - strchr 在 C 中导致段错误

c++ - 如何使用 stringstream 作为 C++ 函数的参数?

linux - 编写由 LLVM 后端编译的代码时,体系结构重要吗?