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

相关推荐
Mr-Wanter3 小时前
wsl2 jdk管理工具之sdkman
java·开发语言·sdkman
2502_921286073 小时前
【企业网络管理】DHCP 与 SAMBA:从协议原理到企业级实战配置全解析
开发语言·php
矮小的方盒3 小时前
关于大型网站技术演进的思考(一)--存储的瓶颈(1)
开发语言
Maiko Star3 小时前
Python核心语法——函数
开发语言·python
大气的小蜜蜂4 小时前
基于Python+Django的健身房管理系统实现:核心亮点全流程解析
开发语言·python·django
天空'之城4 小时前
Linux 系统编程 04:进程基础
linux·开发语言·进程基础
2zcode4 小时前
免费开源项目文档:基于MATLAB图像处理的药片检测与计数系统设计与实现
开发语言·图像处理·matlab
charlie1145141914 小时前
Cinux: 加载第一个内核:从 bootloader 跳进 C++
linux·开发语言·c++·嵌入式
. . . . .5 小时前
Egg框架深入
java·开发语言