-Wlong-long
gcc警告的原因是什么?
来自gcc手册页:
-Wlong-long
Warn if long long type is used. This is enabled by either -Wpedantic or -Wtraditional in ISO C90 and C++98 modes. To inhibit the warning messages, use -Wno-long-long.
据我了解,long long
必须至少为64位(实际上它总是64位,至少对于今天的编译器而言)。这不是ISO C90或C ++ 98的情况,还是有其他原因不使用long long
?
我知道<stdint.h>
类型int64_t
和朋友,但是一些不太旧的编译器(例如VS2005和Green Hills ARM 3.5)不提供<stdint.h>
,而我对于那些和更新的工具链,long long
(至少)是64位。
答案 0 :(得分:37)
ISO C90和C ++ 98中还没有long long
类型。它仅在ISO C99和C ++ 11中添加。
GCC在标准化之前将其作为扩展提供了。