0.宏定义.0
“宏”就是C语言中标准允许程序用一个标识符表示的一个字符串。宏分为两种分别是:无参数宏,有参数宏。
1.1无参数宏
无参数宏定义的一般形式为:
#define 标识符字符串
“#”代表本行的编译预处理命令。“define”是宏定义的关键字。
使用无参数宏程序,输入半径,求圆的周长,面积与体积:
#include "stdafx.h"
#define PI 3.14
int _tmain(int argc, _TCHAR* argv[])
{
float l,s,r,v;
printf("input radius:");
scanf("%f",&r);
l=2.0*PI*r;
s=PI*r*r;
v=4.0/3.0*PI*r*r*r;
printf("l=%10.4f\ns=%10.4f\nv=%10.4f\n",l,s,v);
return 0;
}
说明:宏替换是在程序中用相应的字符串来替换宏名,编译器预处理程序对它不做任何检查。
终止宏定义命令形式为:
#undef
undef是终止宏定义的特定字,它的作用是从该命令开始,该标识符(宏名)不在代表相应的字符
序列,即该标识符的作用范围到此结束,一般写在语句最后。
1.2有参数宏
有参数宏定义一般形式为:
#define 标识符 (形参表) 字符串
如果有多个形参,这也可以像函数一样用逗号隔开。在程序中使用有参数宏的形式为:标识符 (实参表)。
#include "stdafx.h"
#define MAX(x,y) (x>y?x:y)
int _tmain(int argc, _TCHAR* argv[])
{
int a=1,b=2,max;
max=MAX(a,b);
printf("the max between (%d,%d)is %d\n",a,b,max);
return 0;
}
1.3文件包含
文件包含命令一般形式:
#include “文件名”或 #include <文件名>
文件包含命令的功能是把指定的文件插入该命令行位置取代该命令行,从而把指定的文件和当前的源程序文件连成一个源文件。
1.4条件编译
条件编译是指在特定的条件,对满足条件和不满足条件的情况分别进行处理——满足条件是编译某些语句,不满足条件时编译另一些语句。
样式一:
#ifndef 标识符
程序段
#endif
含义:如果没有定义标识符,就编译程序段,这个程序段可以使语句,也可以使命令行。
样式二:
#ifndef 标识符
程序段1
#else
程序段2
#endif
含义:如果没有定义标识符,就编译程序段1,否则就编译程序段2。
样式三:
#ifdef 标识符
程序段1
#endif
含义:如果定义标识符,就编译程序段1.否则就不编译这个程序段。