实际上,我认为还有另一个**主要**区别:当缓冲区对于确定的输出来说不够大时,`snprintf`将截断,但`sprintf_s`将调用一个处理程序,默认情况下,该处理程序将引发异常并且(最有可能)终止程序。不幸的是,我无法验证这一点,因为我的电脑有 MSVC(它对 `sprintf_s` 使用不同的定义,并且我无法让任何其他“Godbolt”...