int64_t定义冲突

编译看到报错

In file included from A.h:22:0,
                 from B.h:9,
                 from C.c:5:
../common/arch.h:39:26: 错误:与‘int64_t’类型冲突
 typedef signed long long int64_t;

————————————————分割线——————————————————
                          ^
In file included from /usr/include/stdlib.h:314:0,
                 from ../common/arch.h:22,
                 from A.h:22,
                 from B.h:9,
                 from C.c:5:
/usr/include/sys/types.h:197:1: 附注:‘int64_t’的上一个声明在此
 __intN_t (64, __DI__);

解释:

分割线上面是类似于一个堆栈,假设叫堆栈A,分割线下面也是一个堆栈,假设叫堆栈B,堆栈A的栈顶也就是arch.h跟堆栈B的栈顶types.h冲突,都定义了int64_t

解决方案:

我们一般不会修改系统函数,我们只会修改自己写的文件,我们自己写的文件就是arch.h我注释了自己在arch.h里写的int64_t,就解决了。

有时候可以加入一些宏定义去判断,比如说我判断引入了系统的types.h,就不定义int64_t

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值