gnu++ 98模式也支持long long类型

gnu++98(即编译参数 -std=gnu++98)模式下,可以畅通无阻地使用 long long 类型。

这背后的逻辑和 gnu89 是完全一致的。可以这样拆解来看:

gnu++98 = C++98 官方标准 + GNU 独有扩展

  1. 官方标准的缺失: 纯正的 C++98 标准中确实没有 long long
  2. GNU 扩展的补足: GCC 编译器家族非常早就把 long long(64位整型)作为自己的"看家扩展"加到了编译器里,不仅给 C 语言用,也给 C++ 用。
  3. 默认方言: 当你开启 gnu++98 时,你实际上是在告诉编译器:"请以 C++98 为基础,并且允许使用所有的 GNU 扩展功能 "。因此,作为核心扩展之一的 long long 自然被完美支持。

严格模式与 GNU 模式的对比体验

为了让你更直观地感受,如果你在代码里写了 long long a = 10;,不同的编译参数会有不同的表现:

  • 使用 -std=gnu++98(早期 GCC 的默认 C++ 模式):
    正常编译通过,没有任何警告,完美运行。
  • 使用 -std=c++98 -pedantic(开启纯正 C++98 严格检查):
    编译能通过,但编译器会无情地甩出一个警告(Warning):

warning: 'long long' is a C++11 extension [-Wlong-long]

总结来说 ,只要带有 gnu 前缀的编译标准(如 gnu89, gnu99, gnu++98),编译器都会大开绿灯,把你当做"自家人",让你舒舒服服地使用 long long 这个 GNU 早就造好的轮子,而不必等到 C++11 官方颁布许可。

相关推荐
黑马程序员毕设16 分钟前
基于Java的医院药品管理系统的优化设计与实现
java·开发语言·spring boot·小程序·架构·课程设计·毕设
_Twink1e1 小时前
openJiuwen 实训营 Day 1 · WorkSwarm 入门教程
开发语言·c++·openjiuwen
问天_观心1 小时前
大模型微调学习(一)
开发语言·人工智能·学习·语言模型·github
阿里嘎多学长1 小时前
2026-09-03 GitHub 热点项目精选
开发语言·程序员·github·代码托管
源代码•宸2 小时前
前置准备:定时微服务背景和现状
开发语言·经验分享·后端·微服务·云原生·架构·golang
2601_967338712 小时前
C#上位机开发零基础入门到精通全套视频
开发语言·c#
小白学大数据3 小时前
超简单:用 Python 让 Excel 飞起来:用 openpyxl 把重复报表整理交给脚本
开发语言·数据库·python·excel
旧梦95273 小时前
Java SortedMap 接口详解:从入门到实战
java·开发语言
莫陌尛.3 小时前
Java_this构造方法
java·开发语言
Persistent的粽子!3 小时前
C++:类与对象(二)
开发语言·c++