首页新闻找找看学习计划

Linux C 宏定义sizeof问题

0
悬赏园豆:10 [已解决问题] 解决于 2018-05-14 19:22

电脑64位linux系统,代码假设定义一个宏#define FUN(x)  fun(x, sizeof(x)),代码中传入一个int型调用这个宏,进入fun函数显示sizeof(x)这个值传入的是8,但是如果我直接调fun这个函数,显示传入的值为4。这里应该都是预编译阶段就确定的值为什么有这个差别?

水墨的心的主页 水墨的心 | 菜鸟二级 | 园豆:361
提问于:2018-05-13 17:44
< >
分享
最佳答案
0

http://en.cppreference.com/w/cpp/language/types int的长度一般都是4个字节

std::cout<< "size of int: " << sizeof (int) << std::endl;

你这个问题好宏应该关系不大

收获园豆:10
2012 | 专家六级 |园豆:18892 | 2018-05-14 09:51

我自己sb了,宏里面传的&int,搞成指针是8个字节,多谢了。

水墨的心 | 园豆:361 (菜鸟二级) | 2018-05-14 19:21
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册