#include <stdio.h>
#include <stdint.h>
void modify(int64_t *l)
{
*l = 0x0000000100000002;
}
int main(int argc, char **agrv)
{
int32_t a = 0;
int32_t b = 0;
int32_t c = 0;
modify(&b);
printf("a=%d, b=%d, c=%d\n", a, b, c);
return 0;
}
这段代码稍微高一点版本的编译器应该都会有编译警告,如果不去处理这些警告的话,那么输出结果会是:
a=1, b=2, c=0
或
a=0, b=2, c=1
一个典型的淹栈现象,这幷不是我们预期的结果。