任何已经工作超过一周的C程序员遇到了因printf使用更多格式说明符而非实际参数调用而导致的崩溃,例如:
printf("Gonna %s and %s, %s!", "crash", "burn");
Run Code Online (Sandbox Code Playgroud)
但是,当你向printf 传递太多参数时,是否会发生类似的坏事?
printf("Gonna %s and %s!", "crash", "burn", "dude");
Run Code Online (Sandbox Code Playgroud)
我对x86/x64程序集的了解使我相信这是无害的,虽然我不相信没有一些边缘条件我缺少,而且我不知道其他架构.这种情况是否保证是无害的,或者这里是否存在潜在的崩溃诱因?