字符串常量指针在头文件中定义初始化与源文件中定义并初始化的区别

1)在头文件中定义并初始化,那么包含了该头文件的每一个编译单元不仅会为每一个常量指针常量(如const char * const)创建一个独立的拷贝项,而且也会为哪个长长的字符串字面常量创建一个独立的拷贝项,,相当于在每一个编译单元内分别定义和初始化每一个常量时(字符串常量与整型或浮点型常量定义不同,后者在初始化完后不再需要哪个字面常量)。因此每一个编译单元内访问的字符串常量都是它自己单独创建的拷贝。空间的开销就体现在每一个字符串字面常量的独立拷贝上。


2)在源文件中定义并初始化,在头文件中声明所有常量指针变量,而在源文件中定义并初始化他们,则每一个包含该头文件的编译单元访问的不仅是常量指针常量的唯一实体,而且字符串字面常量也是唯一实体。大大节约了内存,而且不影响效率。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值