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

相关推荐
果果燕15 小时前
C++ 学习笔记(二):类与对象—— 构造函数与析构函数
开发语言·c++
江畔柳前堤15 小时前
Function Calling 与 Tool Calling:从认知到工程的全景深度解析
开发语言·网络·人工智能·深度学习·算法·机器学习·php
2601_9499506315 小时前
Java 面试准备,用练题簿把“背过八股”变成“真正会答”
java·开发语言·面试·刷题·小程序推荐
老洋葱Mr_Onion15 小时前
【C++】信息学奥赛CSP通关之路——CSP-J/S第一轮原创全真模拟试卷集(2026)卷四全卷解析
开发语言·c++
zander25815 小时前
LeetCode 739:每日温度——为什么单调栈要持续弹出
开发语言·python·算法
無限進步D15 小时前
Java 函数式编程(Lambda)
java·开发语言
xzlAwin16 小时前
Win10安装Go语言多版本管理器g工具
开发语言·golang
(initial)16 小时前
C-05. Kernel Fusion 代价边界:少写回 vs 寄存器压力与 occupancy
c语言·开发语言·cuda
汤姆yu17 小时前
基于python大数据的高校舆情监测系统的设计与实现
大数据·开发语言·python·分享·分析·舆情
Cory.眼17 小时前
Python爬虫实战:从入门到进阶
开发语言·爬虫·python