他们没有联系只有区别:不同层面上的东西。 #define: 预处理层面上的替换,不存在于语意层面 static: 变量的作用域控制 const: 变量的访问控制:只读 共同点: 1、static和const在编译时直接分配内存。 在C语言及由其派生出的C++与Objective-C等程序语言中,“static”是用于控制变量的生命周期和连接方式(即其作用域...
* 如果static写在函数的实现中, 代表定义一个内部函数 * 如果static写在函数的声明中, 代表声明一个内部函数 6.声明和定义的区别: * 声明不会开辟存储空间 * 定义会开辟存储空间 7.预处理指令 * 什么是预处理指令: * 在我们的文件翻译成0和1之前做的操作我们称之为预处理指令 ...
其中原类型中含有定义部分,新类型名一般用大写表示,以便于区分; 有时也可以用宏定义#define来代替typedef的功能,但是宏定义是由预处理完成的,而typedef则是在编译时完成的,后者更加灵活方便。 1.typedef它的对象必须是类型 2.作用:给类型取一个"别名" 3.格式: typedef 类型 别名(标识符); const 关键字const用来...
(1) 编译器处理方式不同 #define 宏是在预处理阶段展开。 const 常量是编译运行阶段使用。 (2) 类型和安全检查不同 #define 宏没有类型,不做任何类型检查,仅仅是展开。 const 常量有具体的类型,在编译阶段会执行类型检查。 (3) 存储方式不同 #define宏仅仅是展开,有多少地方使用,就展开多少次,不会分配内存。
总结:离变量名远就是用来修饰指针指向的数据,const 离变量名近就是用来修饰指针变量(指向数据的地址),如果近的和远的都有,那么就同时修饰指针变量以及它指向的数据。 3、const 和函数形参 在C语言中,单独定义 const 变量没有明显的优势,完全可以使用#define命令代替。const 通常用在函数形参中,如果形参是一个指针...
4.const 修饰在函数名后面 5.const 修饰函数参数 二.define 使用 1.define 定义常量 2.define 定义函数 3.define 定义多行函数 4.define 防止头文件重复包含 三.const 和 define 区别 1.就起作用的阶段而言 2.就起作用的方式而言 3.就存储方式而言 ...
你可以在头脑里画一条垂直线穿过指针声明中的星号(*)位置,如果const出现在线的左边,指针指向的数据为常量;如果const出现在线的右边,指针本身为常量;如果const在线的两边都出现,二者都是常量 Static C语言中, static 局部变量, 生存期为这个源程序, 不过作用域仍难是局部 ...
C语⾔static和const的区别 static:1、不考虑类,static的作⽤:1)第⼀个作⽤:隐藏。使得全局变量和函数对其它⽂件不可见,同时避免了不同⽂件的命名冲突。2)第⼆个作⽤:默认初始化为0。未初始化的全局静态变量和局部静态变量都保存在BBS段,BBS段的特点是,程序运⾏之前会⾃动清零。3)第三...
const常量是一个“运行时”概念,在程序运行使用,类似于一个只读行数据 存储方式不同 宏定义是直接替换,不会分配内存,存储与程序的代码段中; const常量需要进行内存分配 类型和安全检查不同 宏定义是字符替换,没有数据类型的区别,同时这种替换没有类型安全检查,可能产生边际效应等错误; ...