文件包含
#include <file.h>
#include "file.h"
区别在于:尖括号存放在C库头文件所在目录中寻找要包含的文件,称为标准方式
引号是先在用户当前目录寻找须要包含的文件,找不到再按标准方式查找
要合理的导包以节省查找时间
条件编译
#ifdef 标识符
程序段1
#else
程序段2
#endif
当指定的标识符已经被#include命令定义过,则在程序编译阶段只编译程序1,否则编译程序2
#else可以忽略
#ifndef 标识符
程序1
#else
程序2
#endif
与上面相反,如果没有被编译过则在程序编译阶段只编译程序1,否则编译程序2
用法:
#include <stdio.h>
#define PI 3.1415926
main(){
#ifdef PI
printf("PI is set");
#endif // PR
}
小例子:如果CG为假则小写输出,CG为真则为大写输出
#include <stdio.h>
#define CG 0
main(){
char str[20]="abcDEF",c;
int i ;
i=0;
while((c=str[i])!='�')
{
i++;
#if CG
if(c>='a'&&c<='z')
{
c=c-32;
}
#else
if(c>='A'&&c<='Z')
{
c=c+32;
}
#endif // CG
printf("%c",c);
}
}
一个自定义的格式化输出小例子
format.h文件
#define PR printf
#define N "
"
#define D "%d"
#define D1 D N
#define D2 D ","D N
#define D3 D ","D ","D N
demo.c文件
#include <stdio.h>
#include "format.h"
main(){
PR(D1,1);
PR(D2,1,2);
PR(D3,1,23,4242);
}