-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
?
我知道有像 int64_t
这样的 <stdint.h>
类型,但是一些老旧的编译器(例如VS2005和Green Hills ARM 3.5)不提供 <stdint.h>
,而我认为对于那些和更新的工具链来说,long long
(至少)会是64位。
stdint.h
的编译器不符合 C99 标准,这意味着它们很可能根本没有long long
!(除非它们是旧版本的 GCC。) - zwolstdint.h
没有long long
(除了在90年代的大多数时间里我们有个借口:C99还没有被写出来,再加上“普通”的CPU没有64位整数寄存器,因此在基本的C类型中缺少一个64位整数也是有些合理的。) - user2404501