C编译器剖析_4.4 语义检查_外部声明_内部连接和外部连接

本文详细探讨了C语言中的内部连接(Internal Linkage)和外部连接(External Linkage)概念,解释了C标准中关于连接性的规定。内部连接适用于同一C文件内的同名外部声明,而外部连接则涉及多个C文件中的同名声明,指向全局或静态数据区的同一对象。文章通过实例解释了连接性规则,并指出不同声明的冲突会导致未定义行为。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

4.4.4  内部连接和外部连接(Internal Linkage and External Linkage)

         在这一小节中,我们来讨论一下C语言的内部连接Interal Linkage和外部连接External Linkage。C标准中关于连接Linkage的原文为:

         An identifier declared in different  scopes or in the same scope more than once can be made

to refer to the same object or function by a process called linkage . There are three kinds of linkage: external, internal, and none.

         其大意为:出现在不同作用域或者相同作用域的多个重名声明,它们可代表内存中的同一个对象,而把多个重名声明对应到同一内存对象的过程称为连接Linkage,可分有外部连接ExternalLinkage、内部连接Internal Linkage和无连接None of Linkage。此处我们讨论的连接Linkage主要是针对重名的多个外部声明而言,而不是“连接器Linker所做的把多个编译后生成目标文件连接Linking成一个可执行程序”的工作。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值