const 推出的初始目的,正是为了取代预编译指令,消除它的缺点,同时继承它的优点。
const的作用
(1)可以定义const常量,具有不可变性(2)用于函数参数,便于进行类型检查,使编译器对处理内容有更多了解,消除了一些隐患。例如: void f(const int i) { ………} 编译器就会知道i是一个常量,不允许修改(3)同宏定义一样,可以做到不变则已,一变都变!(4)可以保护被修饰的东西,防止意外的修改,增强程序的健壮性。(5)可以节省空间,避免不必要的内存分配(6)提高了效率。 编译器通常不为普通const常量分配存储空间,而是将它们保存在符号表中,这使得它成为一个编译期间的常量,没有了存储与读内存的操作,使得它的效率也很高。(7)修饰常指针
const int *A; //const修饰指向的对象,A可变,A指向的对象不可变int const *A; //const修饰指向的对象,A可变,A指向的对象不可变int *const A; //const修饰指针A, A不可变,A指向的对象可变const int *const A;//指针A和A指向的对象都不可变Const修饰其他数据类型包括数组,都是指内容不可变。
const与define
两者都可以用来定义常量,但是const定义时,定义了常量的类型,所以更精确一些(其实const定义的是只读变量,而不是常量)。#define只是简单的文本替换,除了可以定义常量外,还可以用来定义一些简单的函数,有点类似内置函数。const和define定义的常量可以放在头文件里面。(小注:可以多次声明,但只能定义一次)
【注】const不能通过赋值改变,但可以通过其他方式改变,比如数据的输入。
-
嵌入式
+关注
关注
5068文章
19013浏览量
303091 -
C语言
+关注
关注
180文章
7597浏览量
136133 -
CONST
+关注
关注
0文章
43浏览量
8148
原文标题:嵌入式C Const关键字的基础知识
文章出处:【微信号:gh_c472c2199c88,微信公众号:嵌入式微处理器】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论