extern static const修饰符

内联函数的关键字inline是向编译器的建议,extern和static会影响其处理方式。当内联函数是extern时,不内联会导致全局唯一实现;若是static,不内联则只在当前编译单元有效。const修饰变量确保其值不变,对于指针,const可修饰指针变量或指针所指内容,防止修改。const修饰函数参数保护指针所指内容,对返回值使用const保证内容不可变,尤其在指针返回值情况下。
摘要由CSDN通过智能技术生成

"extern"和"static"影响编译器对内联函数的处理
inline关键字是对编译器的内联建议。编译器会根据实际情况决定是否内联当
前函数是否内联。
当一个内联函数同时也是extern函数时,如果编译器决定内联这个函数,那么
没什么问题;如果编译器决定不内联这个函数,它就会给这个函数创建常规且
唯一的函数实现,并且所有其他不内联的调用点都将调用这个实现。
当一个内联函数同时也是static函数时,如果编译器决定内联这个函数,那么
同样也是没什么问题的;如果编译器决定不内联这个函数,那么在当前的编译
单元里,这个函数就跟static函数一样,就会创建一个当前编译单元唯一的函
数实现,所有当前编译单元的函数调用,都会指向这个实现。

①用 const 定义的变量的值是不允许改变的,即不允许给它重新赋值,即使是赋相同的值也不可以.并且 const 修饰的变量在定义的时候就给它赋初值,否则报错.
② int const p 和 const int p等价,const修饰p,即p所指内存中内容不可改,但p本身可改,指向谁谁的内容就不可改; int * const p修饰p,
即p本身不可改,但其所指内存中的内容(即
p)可改
③const修饰指针参数,防止函数体内对指针所指内容进行修改;值传递参数则本身不需要const修饰
④给以"指针传递"方式的函数返回值加 const 修饰,那么函数返回值(即指针)的内容不能被修改,且只能被赋给加const 修饰的同类型指针。如果函数返回值采
用"值传递方式",由于函数会把返回值复制到外部临时的存储单元中,加const 修饰没有任何价值。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值