尧图网站建设 尧图网络
  • 首页
  • 关于我们
  • 服务项目
  • 案例展示
  • 建站流程
  • 资讯中心
  • 联系我们
首页/资讯中心/详情

根据long long类型判断c、c++遵循的标准版本

根据long long类型判断c、c++遵循的标准版本
📅 发布时间:2026/7/6 11:47:10

一、

1, GCC 4.4.5 默认的 C++ 方言不是 C++11。

2,

源码里 64 位类型定义是老式 typedef:

-ordinary.hpp:42:typedefunsignedlonglonguint64;-ordinary.hpp:43:typedeflonglongint64;-std_tp.h:21:typedeflonglongint8;
没有使用 C++11 的 <cstdint>、std::int64_t 等写法。

3, 不能因为在.h文件就判断是c语言而不是c++

typedeflonglongint8;

这是一个类型定义声明,不是“语句”。它本身既可以被 C 编译器解析,也可以被 C++ 编译器解析;关键看哪个源文件 #include 了它。

在当前项目里,std_tp.h:21 虽然后缀是 .h,但主要被 C++ 代码路径使用,例如 当前 模块的源文件都是 .cpp,Makefile 用的是 g++ 编译:

.cpp.o:; $(CXX) -c $(CFLAGS) $< -o $@

所以这行在当前项目构建中应理解为:被 g++ 按 C++ 方言编译,历史意图大概率是 gnu++98 下的 GNU C++ 扩展。

如果它被 .c 文件包含,并用 GCC 的 gnu89 模式编译,那么它也能成立,但那时才叫 GNU C 扩展。

总结:

typedef long long mint8;

在当前项目里:主要是 GNU++98/C++ 侧用法。
不是因为它在 .h 文件里,就自动属于 GNU C。

二、

CFLAGS中没有-std=选项。这意味着编译器使用其默认标准:

  • C++ 文件(.cpp/.cxx)用g++编译,默认为 GNU C++98(即-std=gnu++98)——这是 GCC 4.x 系列的默认值,等价于 C++98 + GNU 扩展。
  • C 文件(.c)用gcc编译,默认为 GNU C89(即-std=gnu89)。

long long的使用依据是GNU 扩展(gnu89/gnu++98),而非 C++11 标准。

具体来说:

  • long long在 C99 / C++11 才被正式纳入标准。
  • 但 GCC 作为扩展,在gnu89和gnu++98模式下也支持long long,只是在严格标准模式(-std=c89/-std=c++98,无gnu前缀)下会报警告。
  • 项目用的g++ -m64(无-std=),默认就是gnu++98,所以long long能编译通过,是靠 GNU 扩展,而不是 C++11。

验证点:makefile里有-D__GCC_4_4_5__宏,说明本项目明确针对 GCC 4.4.5,该版本默认标准正是gnu++98,早于 C++11(2011 年发布)。


❯long long是 C 语言的 还是 C++ 的语句吗?

只有 3 处,全部是typedef类型别名定义,这是 C 和 C++ 共用的语法,两者都支持。

具体看:

文件语句所在文件类型
std_tp.h`typedef long long int8;.h头文件,C 风格
ordinary.hpp`typedef unsigned long long uint64;.hpp头文件,C++
ordinary.hpptypedef long long int64;.hpp头文件,C++

结论:typedef long long是纯 C 风格写法,C 和 C++ 都完全相同,看不出 C++ 特有语法。项目里没有用 C++11 的int64_t(来自<cstdint>)或std::int64_t,而是手动typedef了自己的别名(mint8/my_int64_t),这是典型的老式 C/C++ 跨平台移植写法,与 GNU C89 扩展的风格一致。


相关新闻

  • 3个技巧:如何用DriverStore Explorer彻底解决Windows驱动堆积问题
  • WPS-Zotero插件:5分钟搞定跨平台文献引用的终极解决方案
  • ObjToSchematic:让3D模型在Minecraft世界完美重生的魔法工具

最新新闻

  • 用Go语言构建微服务后端的经验分享
  • LLM Agent 的可观测性工程:Trace、决策审计与成本分析
  • 刷写协议(TODO)
  • 多教师知识蒸馏3种加权策略剖析:CA-MKD置信度 vs 平均 vs 熵加权
  • 从手动到自动:B站抽奖助手的智能革命与技术深度解析
  • 程序员职业规划:大模型时代如何重新设计路线,从岗位要求反推能力栈

日新闻

  • AI智能体安全防护框架AgentGuard:从原理到实战部署指南
  • KMX63与PIC18F26K40硬件组合及低功耗设计实践
  • 基于YOLO13改进的门体检测模型:C3k2模块与PoolingFormer技术解析

周新闻

  • 基于YOLOv12的番茄成熟度智能检测系统开发
  • 终极RimWorld模组管理指南:用RimSort告别模组冲突烦恼
  • AI Agent框架开发:从理论到实践的完整指南

月新闻

  • 2026年6月公司网站搭建最新热门渠道测评:四大低成本/零代码平台对比+避坑
  • 【Linux】Linux arm 编译QT程序,出现expected “}“报错
  • 【MATLAB例程】四基站二维AOA定位与距离辅助增强对比仿真。基于角度观测和测距修正的固定目标平面定位精度分析

关于尧图

  • 公司简介
  • 团队介绍
  • 企业文化
  • 荣誉资质

服务项目

  • 定制开发
  • 电商建站
  • UI 设计
  • 运维服务

快速链接

  • 案例展示
  • 建站流程
  • 常见问题
  • 资讯中心

联系方式

  • 📍北京市朝阳区互联网产业园 A 座 10 层
  • 📞400-888-8888
  • ✉️contact@rkmt.cn
  • 🕐周一至周日 9:00-21:00

© 2024 北京尧图网络科技有限公司 版权所有 | 京 ICP 备 XXXXXXXX 号