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 官方颁布许可。

相关推荐
wdfk_prog10 小时前
嵌入式面试真题第 13 题:单硬件 Timer 下的高精度多路软件定时器架构设计
c语言·开发语言·面试·职场和发展·嵌入式
oort12310 小时前
吃上了自家的细糠,还挺丝滑,用起来手感还行,OortCloud发布新版AI编程平台,下载 OortCodex,Token多,免费薅
大数据·开发语言·人工智能·ai编程
slandarer10 小时前
MATLAB | 泰勒图绘制,支持各种角度范围
开发语言·数学建模·matlab·nature·顶刊·泰勒图
mct12310 小时前
c++ iconv 字符utf-8转换gb2312失败
开发语言·c++
Marst Code12 小时前
Python 3.9 已停止维护!从 3.9 到 3.14 全版本深度对比,生产环境该选哪个?
开发语言·python
ZJH__GO12 小时前
网络编程v2--多客户端互通
java·运维·服务器·开发语言·计算机网络
万岳科技系统开发12 小时前
智慧医院小程序开发推动医疗服务流程全面线上化
大数据·开发语言·人工智能
一只小灿灿12 小时前
C++ 修饰符全面详解
开发语言·c++
马里马里奥-13 小时前
从零搭建AI Agent工具链的技术文章大纲
开发语言·qt
不做Java程序猿好多年13 小时前
Java中 String、StringBuffer、StringBuilder 的区别详解
开发语言·python