为什么 gcc 会长时间发出警告?
Why does gcc have a warning for long long?
-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 位。
ISO C90 和 C++98 中还没有 long long
类型。它仅在 ISO C99 和 C++11 中添加。
不过,GCC 在标准化之前将其作为扩展提供。
-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 位。
ISO C90 和 C++98 中还没有 long long
类型。它仅在 ISO C99 和 C++11 中添加。
不过,GCC 在标准化之前将其作为扩展提供。