我遇到了一个非常奇怪的问题。我定义了一个结构并将它作为一个常量指针传递给一个函数。代码如下所示。
typedef struct a{
char str1[256];
...
int x;
}a_t;
int f(..., const a_t *a){...}
a_t a;
...
a.x = 1;
f(..., &a);
...
问题是一旦进入f(),我会打印出变量a->x,它总是0!??但是如果我将结构成员 x 移动到结构的顶部(在其他成员之前),它将是 1,这是正确的。
使用结构指针作为参数有什么技巧或陷阱吗?
[EDIT1] printf 在函数 f() 的第一行被调用