预处理命令有以下几种:
#define--#undef,#include,#ifdef-#else -#endif,#ifndef-#else-#endif,#if-#else-#endif主要命令。
[1],#define是定义一个标号,可以定义一个标号的值,也可以不定义标号的值(只是定义过):
如:#define PI 3.1415926 这条语句是定义了一个字符串3.1415926的标号PI。
#define PI 这条语句只是定义了一个标号,与后面的#ifdef语句相符合。
在平常很多人会忘记了与#define搭配的#undef,在一般(省略)情况下,它定义的范围是从#define开始到文件的结束,而使用#undef则是使定义的标号的作用范围缩小。
[2],#include<stdio.h>它包含的文件,一定是在include的文件夹里面,而用#include "li.h"则是在当前代码的文件夹中。两种的搜索范围不一样,前者只是在库文件中查询,而后者最先是在当前文件夹里面查询,如果吧存在的话,再到库文件去查询。如我们学习C语言的时候,经常用到的#include<stdio.h>中的stdio.h在哪呢?不要急,在你安装TC的文件夹下的include文件夹中,一定在那存在。
[3],#ifdef-#else-#endif是用来判断一个标识是否被定义,在要判断多个标识要被定义时,可以使用#if defined(标识名)的命令。
defined(标识名),则是判断标识名是否被定义过,如果定义过则返回真值。而其他的#ifndef则是用来判断一个标识名是否没有被定义。
这些预编译命令在程序预处理的过程就将他们全部用展开了,只有#include命令不会展开,它会等到链接的过程将库函数链接在一起。