web-dev-qa-db-ja.com

なぜgccは長い間警告を表示するのですか?

_-Wlong-long_ gcc警告の理由は何ですか?

Gccのmanページから:

_-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ビットになると考えました。

32
Patrick

ISO C90およびC++ 98にはlong longタイプはまだありませんでした。 ISO C99およびC++ 11でのみ追加されました。

GCCは、標準化前の拡張機能として提供していました。

37
a3f