《C语言》-(预处理指令:宏定义、条件编译、文件包含)

 

预处理指令共有三种:

  • 宏定义;

  • 条件编译;

  • 文件包含;

一、预处理指令的执行时刻:

  • 在代码翻译成0和1之前

二、预处理指令的特点:

1.预处理指令都是以#号开头;

2.预处理指令的位置可以随便写的;

3.预处理指令的作用域:从编写指令的哪一行代码开始,一直到文件结尾,或者遇到相应的#undef....

三、宏定义(#define)

1.不带参数的宏定义:

  • 例:

#define COUNT 4      //  注意:这里没有分号

     .......

#undef COUNT

  • 注意:

1.宏名一般用大写,或者以K开头

2.双引号里面的不参与替换;  如:char *name = "COUNT";  // 这里的COUNT不会参与替换

 

2.带参数的宏定义

  • 例:

#define pingfang(a) ((a) * (a))

  • 注意:

1.带参数的宏定义效率比函数高;

2.宏定义为纯粹的文本替换,不会参与运算,所以在定义又参数的宏定义时,参数和结果都要带上小括号(如上)

3.代码练习(注意陷阱)

运行结果:

四、条件编译(#ifdef/#if defined和#ifndef/#if !defined)

1.条件编译

  • 符合了某个条件,后面的代码才会进行编译,不符合就不会进行编译,相当于没有写
  • 注意:由于条件编译(预处理指令)都在代码编译前执行,条件的判断不能用代码里面的变量等,条件编译一般与宏定义一起使用;

2.定义

#define A 5

#ifdef A

  printf("哈哈哈");

#endif

  • 注意:只要写了#ifdef后面一定要写#endif,不然后果很严重,(条件若不成立,#ifdef后面的代码相当于全部不参与编译)

3.#if defined和#if !defined

  • #if defined (A) == #ifdef A    // A是宏名
  • #if !defined (A) == #ifndef A

五、文件包含(#include)

1. #include<文件名> 表示:系统自带的文件;

2.#include"文件名" 表示:自定义的文件;

3.不允许循环包含;如:a.h文件中包含b.h而b.h文件中又包含a.h;

4.多文件开发

  • 注意:采用文件名做宏名,因为文件名是唯一的;

 

 

 
 
 
 
 

转载于:https://www.cnblogs.com/unique-ios/p/4273621.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值