#include #include void func(void); static int count = 10; // 全局变量 int count_in_main; // 定义一个变量,这个变量将被外部cpp程序引用 extern void write_extern(); // 引用外部cpp程序的函数 int main() { // 解决控制台中文输出乱码 SetConsoleOutputCP(CP_UTF8); // register 存储类用于定义存储在寄存器中而不是 RAM 中的局部变量。这意味着变量的最大尺寸等于寄存器的大小(通常是一个词),且不能对它应用一元的 '&' 运算符(因为它没有内存位置)。 // 寄存器只用于需要快速访问的变量,比如计数器。 // 还应注意的是,定义 'register' 并不意味着变量将被存储在寄存器中,它意味着变量可能存储在寄存器中,这取决于硬件和实现的限制。 register int miles; // 在多次调用func的过程中,func中的局部变量i在程序的生命周期内保存,不需要在每次它进入和离开作用域时进行创建和销毁。 // 因此,使用 static 修饰局部变量可以在函数调用之间保持局部变量的值。 while (count--) { func(); } // !!! 由于使用到extern函数,编译的时候需要将这个cpp文件和VariableStorageDescSupport.cpp一起编译 // 编译命令 g++.exe .\VariableStorageDesc.cpp .\VariableStorageDescSupport.cpp -o .\VariableStorageDesc count_in_main = 5; write_extern(); return 0; } void func(void) { static int i = 5; // 局部静态变量,不会在每次被调用时进行创建和销毁。 i++; std::cout << "变量 i 为 " << i; std::cout << " , 变量 count 为 " << count << std::endl; }