您的位置:首页 > 编程语言 > C语言/C++

c语言关键字和数据类型

2016-12-19 23:09 127 查看
1.宏函数和自定义函数的区别:
(1)宏函数在预处理阶段结束;自定义函数经过编译、汇编、链接、生成可执行文件
(2)宏函数只做替换;自定义函数要进行分配内存空间,释放内存空间等一系列操作。宏函数执行效率更高
 
2.宏函数的优点:尽管和真正的函数相比有很多缺点,但只要小心使用还是会显著提高代码的执行效率,毕竟省去了分配和释放栈帧、传参、传返回值等一系列操作,因此那些简短并且被频繁调用的函数经常用宏函数来替换实现。
 
3.条件编译指令:防止头文件重复包含导致的重复定义。
 
4.register寄存器变量
请求编译器将变量尽可能地保存在CPU的内部寄存器中
省去从内存中读取数据的时间,提高程序的执行效率
将频繁被访问的变量或循环变量用register修饰
注意:(1)register只能修饰局部变量,不能修饰全局变量和函数
(2)不能使用&获取register修饰变量的地址
(3)register修饰的变量类型必须是CPU所接受的
 
5.static既能修饰变量,也能修饰函数
修饰的局部变量使其生命周期延长至整个程序结束后释放
修饰的全局变量只能在本文件访问,不能在其他文件访问
修饰的函数只能在本文件调用,不能在其他文件调用
 
6.extern是外部声明,不是定义
声明一个变量在其他文件定义,在当前文件可以访问。
 
7.const修饰的变量是只读变量
const修饰的是变量名,不是对应的空间
const离谁最近,谁就不能修改
注意:const修饰变量时,一定要初始化
 
8.typedef int Int和#defined Int int
相比 typedef更好,因为define只能做傻瓜式替换,可能会产生一些副作用。
 
9.struct结构体
内存对齐,提高程序的性能,但降低内存的效率(内存空洞)
Linux下有1,2,4字节对齐方式
 
10.union共用体
内存覆盖,也遵循内存对齐
大端字节序和小端字节序(CPU属性)
Big endian大端字节序:高字节存放低地址
Little endian小端字节序:低字节存放低地址
 
11.enum枚举是数据类型,在编译阶段处理
只能定义整数宏
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: