我已经int x
在文件一中声明,但我错误地在文件二char
中声明了另一个同名类型的变量,我等待编译器或链接器给我一个错误,但没有显示错误。当我使用调试器时,我看到它被转换为,这是真的吗?!这里到底发生了什么?!x
int x
char x
在我的代码上显示此修改:
文件一
#include <stdio.h>
int x = 50; /** declare global variable called
x **/
int main()
{
print();
printf(" global in file one = %d",x); /** Modification is just here **/
return 0;
}
文件二
char x;
void print(void)
{
x = 100;
printf("global in file two = %d ",x);
return;
}
我的预期结果是 =文件二中的全局 = 100 文件一中的全局 = 50
但结果是:文件二中的全局 = 100 文件一中的全局 = 100
当我使用调试器时,我看到它int x
被转换为char x
,是真的吗?!这里实际发生了什么?