我曾尝试下面的代码foo1.c如果我们将两个同名变量连接到不同的数据类型,该怎么办?
#include<stdio.h>
void f(void);
int x = 38;
int y = 39;
int main() {
f();
printf("x = %d\n", x);
printf("y = %d\n", y);
return 0;
}
foo2.c
double x;
void f() {
x = 42.0;
}
输出:
$ gcc -o myprog foo1.c foo2.c
$ ./myprog
x = 0
y = 1078263808
我得到这个代码怪异的输出可有人解释它怎么会来?
此程序的行为是[未定义](https://en.m.wikipedia.org/wiki/Undefined_behavior)。也请不要发布代码图片。 –
@ n.m。好的,我改变了代码感谢您的建议 –
当你撒谎你的编译器,它会得到自己的回不到你所期望的。 –