You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

__X86_64__架构下long long位宽?typedef定义冲突咨询

问题解答

关于long long的位宽问题

在x86_64架构下使用-m64参数编译时,long long类型仍然是64位,不是128位。

你看到的__extension__ typedef unsigned long long __u64;这段代码,恰恰是因为unsigned long long在64位编译环境下是标准的64位无符号类型,才会被用来定义__u64这个64位类型别名。

128位整数类型在GCC等编译器中是通过扩展类型__int128(无符号版本为unsigned __int128)来支持的,和long long没有关系。

关于typedef uint64_t __u64;的定义冲突问题

这个报错是因为__u64已经被int-ll64.h中的代码提前定义过了,你再次用uint64_t去定义同一个类型别名,属于重复定义,编译器会直接抛出冲突错误。

解决思路:

  • 检查代码中是否同时包含了int-ll64.h和自定义的typedef uint64_t __u64;,移除其中一处重复定义即可。
  • 如果是第三方头文件导致的冲突,可以用条件编译来避免重复定义,示例代码:
#ifndef __u64
typedef uint64_t __u64;
#endif

内容的提问来源于stack exchange,提问作者user3161924

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.12 12:42:05