20、C语言编程:标识符、存储时长与动态内存管理全解析

C语言编程:标识符、存储时长与动态内存管理全解析

1. 标识符的链接属性

在C语言编程中,标识符的链接属性是一个重要的概念,它决定了标识符在不同翻译单元中的可见性和使用方式。标识符的链接属性主要分为内部链接、外部链接和无链接三种。

1.1 内部链接标识符

具有内部链接的标识符不会与其他翻译单元中类似的标识符冲突。若在某个翻译单元中声明了具有内部链接的标识符,就不能再在该翻译单元中声明并使用拼写相同的外部标识符。例如:

static int c; // c 具有内部链接

1.2 无链接标识符

既没有外部链接也没有内部链接的标识符就是无链接标识符。每次声明这样的标识符都会引入一个新的实体。无链接标识符包括以下几种:
- 非变量或函数名称的标识符,如标签名、结构体标签和typedef名称。
- 函数参数。
- 在函数内部声明且没有存储类说明符extern的对象标识符。

以下是一些示例代码:

int func1( void ); // func1 具有外部链接
int a; // a 具有外部链接
extern int b = 1; // b 具有外部链接
static int c; // c 具有内部链接
static void func2( int d ) // func2 具有内部链接;d 无链接
{
    extern int a; // 此 a 与上面的 a 相同,具有外部链接
    int b = 2; // 此 b
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值