预处理命令小结

预处理指令 3

 1:宏定义

 2:条件编译

 3:文件包含

预处理指令是在代码翻译成01之前执行的

 所有的预处理指令都是以#号开头的

 

 源文件-->预处理-->汇编-->二进制-->链接(可执行文件)-->运行

 1:宏定义

#define 宏名

 定义一个没有参数的宏

 在代码翻译成01之前,把所有的宏名替换为值(宏定义只做一个单纯的替换操作)

 注意: 宏名和值之间要用空格隔开

      宏定义后面不需要写分号

      如果把宏名写在双引号中在代码翻译成01之前不会进行替换

      一般宏名都大写,为了和局部变量区分开来

      宏名除了用大写 还可以用k开头

 宏定义的作用域:

  从定义的那一行开始一直到文件结束

可以使用#undef来提前结束宏定义的作用域



带参数的宏

写带参数的宏定义一般会给每一个参数都加上括号同时还要给整体也加上大括号


 2:条件编译

条件编译的格式:

    当条件满足的时候就会编译和下一个条件之间的的代码,其他的都不会参与编译

#if 10 == A

    printf("10\n");

#elif 5 == A

    printf("5\n");

#else

    printf("other\n");

#endif

注意点: 在编写条件编译的时候一定要在后面加上 #endif

 #endif 的作用是告诉条件编译什么时候结束


static和extern对函数的作用

外部函数:定义的函数能被本文件和其它文件访问

 1 默认情况下所有的函数都是外部函数

 2 在不同文件中不能有相同名称的外部函数

 

 extern的作用:

 1 完整的定义一个外部函数

 2 完整的声明一个外部函数

 

 

 内部函数:定义的函数只能被本文件访问

 1 不同文件中可以有相同名称的内部函数

 

 static的作用:

 1 定义一个内部函数

 2 声明一个内部函数


static和extern对全局变量的作用


全局变量分为2:

 1.外部全局变量

    在本文件和其它文件中都可以访问的全局变量称之为外部全局变量

    不同文件中的外部全局变量代表着同一块存储空间

    所有同名的全局变量都代表着同一块存储空间

 

 2.内部全局变量

    只能在本文件中访问的全局变量称之为内部全局变量

 

 extern对全局变量的作用:

 用来"声明"一个外部全局变量

 

 static对全局变量的作用:

 用来定义一个外部全局变量


tepedef的作用:给现有的数据类型起一个别名

  有利于加强数据类型的描述性, 提高了代码的可读性

  提高了程序的可扩展性, 移植性

  减少了代码的书写工作量, 简化了代码

 

 注意点:

 typedef 仅仅是给原有的数据类型起了一个别名,并不是创建一个新的数据类型

 typedef不仅可以写在函数外面还可以写在函数里面,只要在使用别名之前定义就可以



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值