《黑马程序员》预处理指令(宏定义、条件编译、文件包含)(C语言)

宏定义的基本概念

●  预处理指令都是以#开头

●  预处理指令分为三种

1.宏定义

定义格式:#define  宏名   参数

2.条件编译

#if 条件语句

    statement1;

#elif 条件语句

    statement2;

#else

    statement3;

#endif       //条件编译结束必须加上此条语句,否则statement3以下的所有语句都将默认为不编译

3.文件包含

●  预处理指令在代码翻译成0和1之前进行

●  预处理指令的位置是可以写的

●  预处理指令有自己的作用域

作用域:从编写指令的那一行开始移植到文件结束

●  宏名一般用大写或是以k开头,变量名一般用小写

代码练习(不带参数的宏)

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

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

使用宏定义遍历数组内各元素

#include <stdio.h>
#define count 5   //不带参数的宏
int main()
{
	int i;
	int age[count] ={10,84,621,61,24};
	for(i =0;i <count;i++  ){
	printf("age[%d] = %d\n",i,age[i]);
	}
	return 0;
}

代码练习(带参数的宏)

不使用函数求出变量a + b的值

#include <stdio.h>
#define sum(v1,v2) v1+v2           使用宏定义
int main()
{
  int a = 10;
  int b = 20;
  int c =sum(a,b);
  printf("sum = %d\n",c);
  return 0;
}

条件编译

定义:一般情况下,源程序中所有的行都参加编译。但有时希望对其中一部分内容只在满足一定条件下才进行编译,即对一部分内容指定编译条件。

代码练习:

#include <stdio.h>
#define A 10
int main()
{
#if (a ==10)
    printf("a = 10\n");
#elif (a ==5)
    printf("a = 5\n");
#else
  printf("a为其他值\n");
#endif
 return 0;
}
时间: 2024-10-18 19:42:27

《黑马程序员》预处理指令(宏定义、条件编译、文件包含)(C语言)的相关文章

&lt;&lt;黑马程序员&gt;&gt;预处理指令

预处理命令 ①  宏定义    ②  条件编译    ③  文件包含 宏定义: #define  A  5       不带参数的宏       ①  所有的预处理命令都是以#开头:       ②  预处理命令在程序翻译成0和1之前将程序中的A替换成5:       ③  预处理的作用域是在预处理命令开始的那一行开始,到程序的结尾:       ④  宏名一般用大写或者以看k开头,变量名一般用小写:   #define pingfang(a)  ((a)*(a))       ①  带参数的宏

黑马程序员----预处理指令(宏定义、条件编译、文件包含)

预处理指令共有三种: 宏定义: 条件编译: 文件包含: 一.预处理指令的执行时刻: 在代码翻译成0和1之前 二.预处理指令的特点: 1.预处理指令都是以#号开头: 2.预处理指令的位置可以随便写的: 3.预处理指令的作用域:从编写指令的哪一行代码开始,一直到文件结尾,或者遇到相应的#undef.... 三.宏定义(#define) 1.不带参数的宏定义: 例: #define COUNT 4      //  注意:这里没有分号 ....... #undef COUNT 注意: 1.宏名一般用大

预处理指令--宏定义

预处理指令简介 •C语言在对源程序进行编译之前,会先对一些特殊的预处理指令作解释(比如之前使用的#include文件包含指令),产生一个新的源程序(这个过程称为编译预处理),之后再进行通常的编译 •为了区分预处理指令和一般的C语句,所有预处理指令都以符号“#”开头,并且结尾不用分号 •预处理指令可以出现在程序的任何位置,它的作用范围是从它出现的位置到文件尾.习惯上我们尽可能将预处理指令写在源程序开头,这种情况下,它的作用范围就是整个源程序文件 •C语言提供的预处理指令主要有:宏定义.文件包含.条

【黑马程序员】第12课:文件上传&文件下载&注解

<pre> day12 上节内容回顾 1.jstl的标签 *if  choose *forEach <c:forEachvar="l" items="${list}"> 2.jsp开发模式 *模型一 *模型二(mvc模式) **mvc模式 ***m:模型,使用javabean ***v:视图,使用jsp ***c:控制器,使用servlet *dao模式:数据访问对象,专注于对数据库的操作 **首先创建接口,在接口里面定义操作数据库的方法 *

黑马程序员:从2016互联网大会数据,看PHP语言发展潜力

2016(第十五届)中国互联网大会于6.21-23日在北京国际会议中心召开.作为汇聚顶级专家,紧扣行业脉搏,聚焦热点趋势的深度权威大会,互联网大会不仅会分析中国互联网行业的发展趋势,也会聚焦互联网技术的发展. 此次互联网大会,回顾了2015年中国互联网的发展.据大会转载的CNNIC数据显示,中国网民人数已经达到了6.8826亿,普及率达到了50.3%,仅在2015年,网民新增就达到3951万人. 面对网民规模的持续扩大,PHP语言在会有什么样发展?黑马程序员会给大家带来最独到的见解! 中国网民规

黑马程序员-预处理-枚举-typedef

预处理指令 格式: #define 宏名值 #define COUNT 6 //从该行开始一致到文件结束 1.所有的预处理指令都是以#开头 2.预处理指令分3种 1>宏定义 2>条件编译 3>文件包含 3.预处理指令在代码翻译成0和1之前执行 4.预处理的位置是随便写的 5.预处理指令的作用域:从编写指令的那一行开始,一直到文件结尾,可以用#undef取消宏定义的作用  #undef COUNT 那么后面无法再调用COUNT 6.宏名一般用大写或者以k开头,变量名一般用小写 带参数的宏:

《黑马程序员》 关键字、标示符、注释(C语言)

关键字: 定义: 1> 关键字就是C语言提供的有特殊含义的符号,也叫做“保留字”. 2> C语言一共提供了32个关键字,这些关键字都被C语言赋予了特殊含义. 特征: 1> 全部都是小写. 2> 在开发工具或者智能文本编辑工具中会显示特殊颜色.默认情况下,C语言中的所有关键字在Xcode中都会显示紫褐色. C语言中main函数中主要的关键字有:int  return . 标示符: 定义: 标识符就是在程序中自定义的一些符号和名称.要跟关键字区分开来:关键字是C语言默认提供的符号,标识

黑马程序员--Java基础学习笔记【文件操作、递归】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 文件操作 文件和目录路径名的抽象表示形式. 成员变量 StringpathSeparator= File.pathSeparator; // 路径分隔符 System.out.println(pathSeparator); // ; Stringseparator= File.separator;// 默认名称分隔符 System.out.println(separator); // \ 构造

黑马程序员-C学习笔记之预处理指令

---------------------- IOS开发.Android培训.期待与您交流! ---------------------- 一.什么是预处理指令 预处理指令是告诉编译器在编译之前预先处理的一些指令,有宏定义,文件包含,条件编译. 预处理指令一般以 # 号开头,可以出现在文件的任何地方,作用于整个文件. 二.宏定义 宏定义分不带参数的和带参数的宏定义.     1?不带参数的宏定义 #import <stdio.h> #define AGE 10 // 宏名用大写 int ma