gnu++ 98模式也支持long long类型 在gnu98即编译参数-stdgnu98模式下可以畅通无阻地使用long long类型。这背后的逻辑和gnu89是完全一致的。可以这样拆解来看gnu98 C98 官方标准 GNU 独有扩展官方标准的缺失纯正的 C98 标准中确实没有long long。GNU 扩展的补足GCC 编译器家族非常早就把long long64位整型作为自己的“看家扩展”加到了编译器里不仅给 C 语言用也给 C 用。默认方言当你开启gnu98时你实际上是在告诉编译器“请以 C98 为基础并且允许使用所有的 GNU 扩展功能”。因此作为核心扩展之一的long long自然被完美支持。严格模式与 GNU 模式的对比体验为了让你更直观地感受如果你在代码里写了long long a 10;不同的编译参数会有不同的表现使用-stdgnu98早期 GCC 的默认 C 模式正常编译通过没有任何警告完美运行。使用-stdc98 -pedantic开启纯正 C98 严格检查编译能通过但编译器会无情地甩出一个警告Warningwarning: long long is a C11 extension [-Wlong-long]总结来说只要带有gnu前缀的编译标准如gnu89,gnu99,gnu98编译器都会大开绿灯把你当做“自家人”让你舒舒服服地使用long long这个 GNU 早就造好的轮子而不必等到 C11 官方颁布许可。