问题描述
- Linux 指针自增在编译时是否优化
- void Test(DATA_17 **pstr)
{
DATA_23 **pdata23 = (DATA_23 **)pstr;
printf(""%pn""*pstr);
++(*pstr);
++(*pdata23);
printf(""%pn""*pstr);
}
这两处打印出的指针应该相差多少,7还是3?
typedef struct DATA_17
{
BYTE by1;
BYTE by2;
BYTE by3;
} DATA_17;
typedef struct DATA_23
{
BYTE by1;
BYTE by2;
BYTE by3;
BYTE by4;
} DATA_23;
解决方案
用sizeof(DATA_23)和DATA_17判断下。
不同的编译器不同的环境不同,不能猜。
解决方案二:
不同的编译选项都可能不同的。
解决方案三:
只能说,以你调试得到的结果为准。
解决方案四:
GCC编译器!!!!
解决方案五:
sizeof(DATA_17)=3sizeof(DATA_23)=4,没有猜结果,是因为我打印出的不对,程序出错了,才来发帖的!!
解决方案六:
“不同的编译选项都可能不同的”大哥可以具体说说吗,我试验了所有优化选项(01-0s),结果都一样
时间: 2024-08-03 23:47:51