你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

楼主: 苏柚

【3.29签到】每日问答——关键字const有什么含意?

   关闭 [复制链接]
回帖奖励 212 ST金币 回复本帖可获得 2 ST金币奖励! 每人限 1 次

10

主题

1651

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-2-15
发表于 2016-3-29 10:41:33 | 显示全部楼层

回帖奖励 +2 ST金币

天天签到。
回复 支持 反对

使用道具 举报

14

主题

185

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-9-2
发表于 2016-3-29 10:46:31 | 显示全部楼层

回帖奖励 +2 ST金币

:):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):):)
回复 支持 反对

使用道具 举报

16

主题

1710

回帖

241

蝴蝶豆

论坛元老

最后登录
2020-12-8
发表于 2016-3-29 10:50:48 | 显示全部楼层

回帖奖励 +2 ST金币

签到签到
回复 支持 反对

使用道具 举报

4

主题

1946

回帖

0

蝴蝶豆

论坛元老

最后登录
2020-12-9
发表于 2016-3-29 11:04:29 | 显示全部楼层

回帖奖励 +2 ST金币

签到签到
回复 支持 反对

使用道具 举报

11

主题

661

回帖

0

蝴蝶豆

金牌会员

最后登录
2020-6-8
发表于 2016-3-29 11:08:53 | 显示全部楼层

回帖奖励 +2 ST金币

签到签到签到
回复 支持 反对

使用道具 举报

15

主题

930

回帖

29

蝴蝶豆

金牌会员

最后登录
2020-8-17
发表于 2016-3-29 11:09:56 | 显示全部楼层

回帖奖励 +2 ST金币

const关键字的作用主要有以下几点:

(1)可以定义const常量,具有不可变性。 例如:
const int Max=100; int Array[Max];
(2)便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如: void f(const int i) { .........} 编译器就会知道i是一个常量,不允许修改;
(3)可以避免意义模糊的数字出现,同样可以很方便地进行参数的调整和修改。
(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。 还是上面的例子,如果在函数体内修改了i,编译器就会报错; 例如:
void f(const int i) { i=10;//error! }
(5) 为函数重载提供了一个参考。
class A { ......
void f(int i) {......} //一个函数
void f(int i) const {......} //上一个函数的重载 ......
};
(6) 可以节省空间,避免不必要的内存分配。 例如:
#define PI 3.14159 //常量宏
const doulbe Pi=3.14159; //此时并未将Pi放入ROM中 ......
double i=Pi; //此时为Pi分配内存,以后不再分配!
double I=PI; //编译期间进行宏替换,分配内存
double j=Pi; //没有内存分配
double J=PI; //再进行宏替换,又一次分配内存!
const定义常量从汇编的角度来看,只是给出了对应的内存地址,而不是象#define一样给出的是立即数,所以,const定义的常量在程序运行过程中只有一份拷贝,而#define定义的常量在内存中有若干个拷贝。
(7) 提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。
回复 支持 反对

使用道具 举报

12

主题

680

回帖

19

蝴蝶豆

金牌会员

最后登录
2020-10-30
发表于 2016-3-29 11:29:04 | 显示全部楼层

回帖奖励 +2 ST金币

签到签到!
回复 支持 反对

使用道具 举报

40

主题

757

回帖

4

蝴蝶豆

金牌会员

最后登录
2019-12-27
发表于 2016-3-29 11:33:28 | 显示全部楼层

回帖奖励 +2 ST金币

定义一个常量...
说明该变量不可修改...
回复 支持 反对

使用道具 举报

74

主题

1368

回帖

194

蝴蝶豆

版主

最后登录
2020-5-12
发表于 2016-3-29 11:33:55 | 显示全部楼层

回帖奖励 +2 ST金币

"只读"~~~~~~~
回复 支持 反对

使用道具 举报

11

主题

824

回帖

0

蝴蝶豆

金牌会员

最后登录
2019-2-23
发表于 2016-3-29 11:34:28 来自手机 | 显示全部楼层

回帖奖励 +2 ST金币

签到签到
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版