文件作用域

全局常量 类定义 inline函数 enum定义 虽然能够在多个程序文件中重复使用,但是在同一个程序文件中却只能定义一次,因为必须使用 #ifndef #define #endif

c++中 名称有内部链接和外部链接

外部链接 如函数定义,以为呢他们可以在其他文件中使用,因此不能允许在程序中被重复定义,
但是 内部链接 如 ;类定义 枚举定义,全局常量定义,inline定义和模板定义 因为它们只能在自己的文件中使用,所以可以跨文件重复定义,但是毕竟是定义,在同一个文件中还不是允许多次定义的
所以采用头文件卫生
C++中,块作用域文件作用域是两种不同的变量作用域,它们决定了变量的可见性和生命周期。 1. **块作用域(Block Scope)**: 块作用域是指变量在某个代码块(例如函数、循环、条件语句等)内部声明的,变量仅在该代码块内可见。代码块通常由花括号 `{}` 包围。 ```cpp void exampleFunction() { int x = 10; // x 的作用域从声明处开始,到函数结束 if (x > 0) { int y = 20; // y 的作用域从声明处开始,到 if 语句块结束 std::cout << x + y << std::endl; // 输出 30 } // std::cout << y << std::endl; // 错误:y 在此不可见 } ``` 2. **文件作用域(File Scope)**: 文件作用域是指变量在文件级别声明的,变量在整个文件内都可见。文件作用域变量通常在所有函数之外声明,也称为全局变量。 ```cpp int globalVar = 100; // 全局变量,文件作用域 void functionA() { std::cout << globalVar << std::endl; // 输出 100 } void functionB() { std::cout << globalVar << std::endl; // 输出 100 } ``` 需要注意的是,文件作用域变量在多个源文件中使用时需要使用 `extern` 关键字进行声明,以避免重复定义。 ```cpp // file1.cpp int globalVar = 100; // 定义全局变量 // file2.cpp extern int globalVar; // 声明全局变量 void functionC() { std::cout << globalVar << std::endl; // 输出 100 } ``` 总结: - 块作用域变量仅在声明它们的代码块内可见。 - 文件作用域变量在整个文件中可见,并且在多个文件中使用时需要使用 `extern` 进行声明。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值