在程序编译时,编译器会先对源代码中一些特殊的符号和语句进行简单处理,然后才进行编译,这就叫编译预处理。宏定义就是需要编译预处理的内容。
我们可以将程序中一些经常用到的,不好理解和记忆的数值,用一串标识符来代替。或者一些经常出现的重复代码,把它简短化。
定义格式为: #define 宏名称 内容
例如:#define PI 3.1416
程序编译时,编译器会将程序中出现的所有宏名称替换为指定的内容,再进行编译。
也可以将程序中经常使用到的代码,用简短的标识符代替
#include<stdio.h>
#define P(s) printf(s)
#define FOR(n) for(i=0;i<n;i++)
void main(){
int i;
FOR(10) P("hello");
}
现实生活中,有些数据类型往往只有少量有限的取值,例如:学历、星期、逻辑值等。这时我们可以将其定义成枚举型,把所有可能的取值全部列举出来。
enum Week{zhou1,zhou2,zhou3,zhou4,zhou5,zhou6,zhou7};
enum Xueli{chuzhong,gaozhong,zhongzhuan,dazhuan,benke,yanjiusheng};
enum Bool{true=1,false=0},b;
enum Week w=zhou3;
enum Xueli=dazhuan;
b=true;
枚举型变量的取值只能是花括号内列出来的常量,这些常量在当前程序中可随意使用,但实际上它们只是一些整数。枚举型常量的命名规则与变量的命名规则相同,建议用使用大写字母。
C语言的头文件是以.h为后缀,在源程序中使用include将其包含进来,例如:#include<stdio.h>。在源程序编译时,编译器会把被包含的头文件中的内容直接合并到源文件中,再进行编译。
一个头文件可以被多个源文件包含,所以在头文件中主要进行共用资源的定义,例如:函数声明、全局变量定义、外部变量声明、宏定义、数据类型定义等等。
一个C语言程序可以说是由函数构成,如果函数太多,可将它们按功能模块划分,分别写在不同的源文件中。为了方便函数被调用,我们通常要把函数声明写在一个头文件中,需要调用函数时就包含此头文件即可。所以C程序的结构通常是一个源文件对应一个头文件,两者名字相同,后缀不同。
在Dev C++中,如果开发一个C程序涉及到多个源文件,那么,我们需要新建一个项目进行管理。
条件编译是告诉编译器选择性地进行编译指定代码块。
#ifdef 是当某个标识符已经被定义时编译,#ifndef是当标识符未被定义时才编译。两者用法如下:
#ifdef 标识符
代码段1
#else
代码段2
#endif
#ifndef 标识符
代码段1
#else
代码段2
#endif
根据一个常量表达式的值来决定,我们可以通过#if选择性编译代码块。
#if 常量表达式
代码段1
#else
代码段2
#endif
咨询电话:0731-88711630 微信号:hn887700 谢老师 QQ:359689361
长沙网学教育科技有限公司 网站备案号:湘ICP备15000537号