假设我使用了printf
没有传递足够的参数来匹配格式说明符:
#includeint main(void) { printf("missing argument: %s\n"); }
对结果有什么保证吗?
在我的机器上,根本没有打印.
总是这样,或者是否有可能用解析的说明符打印字符串?
例如:
missing argument: %s
要么:
missing argument:
关于这一点,C规范是明确的:
...如果格式的参数不足,则行为未定义.......
C11dr§7.21.6.12
对结果有什么保证吗? - >不.
(在我的机器上,根本没有打印出来.)总是这样 - >不.
是否有可能使用已解析的说明符打印字符串? - >是的.行为未定义.什么都可能发生.