c语言关键字和数据类型

1.宏函数和自定义函数的区别:

1)宏函数在预处理阶段结束;自定义函数经过编译、汇编、链接、生成可执行文件

2)宏函数只做替换;自定义函数要进行分配内存空间,释放内存空间等一系列操作。宏函数执行效率更高

 

2.宏函数的优点:尽管和真正的函数相比有很多缺点,但只要小心使用还是会显著提高代码的执行效率,毕竟省去了分配和释放栈帧、传参、传返回值等一系列操作,因此那些简短并且被频繁调用的函数经常用宏函数来替换实现。

 

3.条件编译指令:防止头文件重复包含导致的重复定义。

 

4.register寄存器变量

请求编译器将变量尽可能地保存在CPU的内部寄存器中

省去从内存中读取数据的时间,提高程序的执行效率

将频繁被访问的变量或循环变量用register修饰

注意:(1register只能修饰局部变量,不能修饰全局变量和函数

2)不能使用&获取register修饰变量的地址

3register修饰的变量类型必须是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枚举是数据类型,在编译阶段处理

只能定义整数宏

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值