C 命名冲突和static 修饰符

C 命名冲突和static 修饰符

一、命名冲突

ANSI C 定义了C标准的库函数,列出了经常用到而可能会引发命名冲突的所有函数,这样,我们就容易避免与库文件中外部对象名称发生冲突。如果一个库函数需要调用另一个未在ANSI C 标准中列出的库函数,那么他应该以“隐藏名称”来调用后者。

二、static 修饰符

        static 是一个能减少命名冲突的有用工具。

例如 

static int a; 

其含义与下面的语句相同

int a;

只不过,a的作用域限制在一个源文件内,对于其他的源文件,a是不可见的。因此,如果若干函数需要共享一组 外部对象,可以将这些函数放到一个源文件中,把他们需要用到的对象也都放在同一个源文件中以static修饰符声明。

注意:

此处用到的情况是它用于函数定义或者全局变量的时候的用法;static 关键字用于修改标识符的链接属性, 从external该为internal,但标识符的存储类型和作用域不受影响。这种方式声明的函数或者变量只能在声明它的源 文件中访问。

当它用于代码块内部的变量声明时,static关键字用于修改变量的存储类型,从自动变量修改为静态变量, 但它们的链接属性和作用域不受影响。用这种方式声明的变量在程序执行前创建了,并在程序整个执行期间一直 存在,而不是每次在代码块开始执行的时候创建,在代码块执行完毕后销毁。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值