首页 > 代码库 > const、typedef 、 define总结
const、typedef 、 define总结
constkeyword
定义时必须进行初始化赋值,一经定义不能改动。上述代码1、2、4编译时会报错提示未初始化。
const和volatilekeyword的后面若紧跟类型说明符则作用于类型说明符。在其它情况下。作用于它左边紧邻的指针星号。definekeyword仅仅是简单的字符替换,而typedef能够看成是对类型的一种封装。为现有类型取个新名字。
const=read only,修饰的为仅仅读变量而不是常量。const修饰的变量不能用作数组的维数也不能放在switch语句的case:之后。
主要作用有:
1.通过把不希望被改动的变量或參数用const来修饰。编译器会保护这些变量不被改动增强系统的可靠性;
2.增强代码的可读性
[html] view plaincopyprint?
- const int a; //a为常量不能被改动
- int const a; //a为常量不能被改动
- const int *a; //a为指向一个常量的指针,a的值是能够变量的
- int *const a; //const修饰a,a为一个指向整型变量的指针常量
const和volatilekeyword的后面若紧跟类型说明符则作用于类型说明符。在其它情况下。作用于它左边紧邻的指针星号。
typedef 与 define的差别体如今两个方面
1.define能够对定义的宏类型名进行扩展,而typedef不能够
[cpp] view plaincopyprint
">?
- #define peach int
- unsigned peach i;//没有问题
- typedef int peach;
- unsiged peach i;//错误,非法
2在连续几个变量的声明中仅仅有typedef能够保证类型的一致性
[cpp] view plaincopyprint
">?
- #define int_ptr int *;
- int_ptr chalk,cheese;
chalk为int *类型。而cheese为int型。由于define仅仅是简单的字符串替换
typedef的特殊使用方式
typedef的特殊使用方式
用来声明函数指针
[html] view plaincopyprint?
- typedef void(*ptr_fun) (int);
- //ptr_fun是一个函数指针,參数为int型。返回值为void
- ptr_fun sinal(int,ptr_fun)
- //sinal是一个函数,接受int和ptr_fun两个类型的參数,返回值为ptr_fun
typedef int A[5];
//a是一个指向有5个元素的整型数组的数组指针。A代表的类型是(int)[5] 。也即A b={1,2,3,4,5};const、typedef 、 define总结
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。