C++ 定义全局的std::vector<int> 报错,加上 static const 就正常
时间: 2024-01-21 12:05:03 浏览: 125
基于WoodandBerry1和非耦合控制WoodandBerry2来实现控制木材和浆果蒸馏柱控制Simulink仿真.rar
这是因为 C++ 中定义全局变量的时候,会将其放在数据区中,如果没有加上 static 关键字,那么每个文件都会有一个该全局变量的实例,会导致链接时出现重复定义的错误。而加上 static 关键字可以限定该全局变量只在当前文件中可见,避免了重复定义的问题。
而对于 const 类型的全局变量,编译器会将其视为常量,放在代码段中,不会在数据区中分配内存,因此不会出现重复定义的问题。
因此,为了避免重复定义的错误,建议在定义全局变量时加上 static 关键字。如果全局变量是 const 类型的,加不加 static 关键字都可以。
阅读全文