在C语言中,重复定义多个同名的全局变量是合法的
在C++中,不允许定义多个同名的全局变量
C语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上
demo
#include <stdio.h> int g_var; int g_var = 1; // C语言可以编译通过 // C++直接拒绝这种二义性 int main(int argc, char *argv[]) { printf("g_var = %d\n", g_var); return 0; }
在C语言中,重复定义多个同名的全局变量是合法的
在C++中,不允许定义多个同名的全局变量
C语言中多个同名的全局变量最终会被链接到全局数据区的同一个地址空间上
demo
#include <stdio.h> int g_var; int g_var = 1; // C语言可以编译通过 // C++直接拒绝这种二义性 int main(int argc, char *argv[]) { printf("g_var = %d\n", g_var); return 0; }