Gcc 很好地提供了-Wformat来帮助查找与 printf 相关的错误。有没有办法在 MSVC 中获得相同的行为?具体来说,我希望编译器对参数进行某种级别的类型检查。由于各种原因,我明确不想使用 C++ 的 iostream 库。(而且我也不想使用 boost 格式)。
引用上面的源码,-WFormat 基本上提供了以下能力
检查对 printf 和 scanf 等的调用,以确保提供的参数具有适合指定格式字符串的类型,并且格式字符串中指定的转换是有意义的。
到目前为止,我能找到的最接近微软的是这个警告,它与使用%d
64 位和 32 位版本有关。