电脑64位linux系统,代码假设定义一个宏#define FUN(x) fun(x, sizeof(x)),代码中传入一个int型调用这个宏,进入fun函数显示sizeof(x)这个值传入的是8,但是如果我直接调fun这个函数,显示传入的值为4。这里应该都是预编译阶段就确定的值为什么有这个差别?
http://en.cppreference.com/w/cpp/language/types int的长度一般都是4个字节
std::cout<< "size of int: " << sizeof (int) << std::endl;
你这个问题好宏应该关系不大
我自己sb了,宏里面传的&int,搞成指针是8个字节,多谢了。