关键字和宏

来源:互联网 发布:国家中级程序员证书 编辑:程序博客网 时间:2024/06/05 17:35
关键字
1.register
实现原理:register会请求编译器尽可能将变量存在cpu内部寄存器。
好处:省去从内存中抓取数据的时间,提高cpu的内存
频繁被访问的变量可以设为register变量
局限性:(1)register只能修饰局部变量,不能修饰全局变量
原因:register修饰的变量只有当前进程知道,其他进程不知道
 (2)不能通过&去获取register变量的地址
 (3)register修饰的变量一定是cpu可以接受的数据类型
2.static
作用范围:修饰局部变量、全局变量和函数
作用:(1)延长局部变量的生命周期使其至程序结束
      (2)只能在文件访问该变量,其他文件不能访问
      (3)static修饰的函数只能在本文件调用,其他文件不能调用
      (4)static修饰的变量全部保存在数据区内的静态数据区,没有初始化,会默认为初始化为0
      (5)staic能起到保护的作用,因为全局变量能被所有函数和文件访问,比较危险
3.extern
extern修饰的变量一定是也只能是全局变量
声明变量是在其他文件中定义的,一定要标注变量类型

4.const
const修饰的变量称为只读变量
空间里的值可变,但不能通过变量名来修改这个空间的值
一般用于修饰函数形参,避免在实现函数是修改实参的值
注意事项:使用const一定要对变量初始化

5.typedef
(1)提高代码的移植性
(2)把复杂的变量变成简单的变量名,提高编程效率
(3)起到解释变量的效果

6.struct
结构体成员的两种表示方法
结构体地址->成员名
结构体.成员名
结构体的作用只是相当于告诉了系统有这些成员,但并未给予其空间,所以在结构体内给成员分配空间是不对的。

7
对于成员是数组,用strcpy(类,成员名,“字符串”)、
对于成员是指针,直接赋

8
内存空洞;不同的数据类型放在一起可能会产生内存空洞,所以建议将相同的数据类型放一起。

9
共用体
union
共用体长度由最长成员确定,共用一段空间会造成数据覆盖

10
大端字节序和小端字节序
小端字节序:低字节存放低地址位,高字节存放高地址位
大端字节序:低字节存放高地址位,高字节存放低地址位

11枚举
enum
枚举变量的长度相当于一个整型
作用:相当于定义了几个宏

12 宏
注意事项(1)宏一定要大写
 (2)不能_..._,以免与内置宏冲突
13
宏函数与函数的区别
宏函数的优点:省却分配和释放栈帧,传参,传返回值等工作,提高代码执行效率,如果用编译时间换内存空间的例子就是宏函数
宏函数的缺点:不做语法检查,不能实现复杂功能,安全性较差
如果用编译时间换运行时间的例子就是inline(关键字)
inline的作用:把子函数搬到主函数,省去传参和返值的过程

14
内置宏
printf("%d\n",_LINE_)所在行数
printf("%s\n",_func_)主函数名
1 0
原创粉丝点击