一、头文件包含
- < >专门用来包含系统提供的头文件,比如c库的头文件(不是程序员自己写的)。" "用来包含自己写的头文件。从更深层次来说,使用<>时编译器会取系统指定目录寻找头文件,找不到就提示头文件不存在(不会查询当前目录下的头文件)。
- 系统指定目录(usr/include目录,编译器允许使用-I来附加指定其他指定的包含路径)
- " "包含的头文件,编译器会默认在当前目录下需找相应头文件,如果没找到会去系统目录中寻找,还没找到就报错。
- 头文件包含的真实含义:在#include <xx.h>这个头文件的内容原地展开替换这一语句,过程在预处理中进行。
二、注释
- 注释是给人看的不是给编译器看的。
- 编译器不看注释,在预处理阶段注释已经被拿掉了,编译器看不到注释。
三、条件编译
- 有时候我们希望程序有多种配置,我们在源代码编写好了各种配置代码,然后给个配置开关,在源代码级别去修改配置开关让程序编译出不同效果。
- 条件编译中分别用的是
#ifdef xxx
#if (条件表达式)
- 第一个在进行条件判定时主要kan符号在本语句之前有没有被定义,只要定义了语句就成立。
- 第二个判定标准是表达式是真还是假。
#include <stdio.h>
#define NUM
int main(void)
{
int a=0;
#ifdef NUM //如果前面有定义NUM符号就执行下面代码
a=111;
#elif //如果没有定义NUM符号就执行下面代码
a=222;
#endif
printf("a=%d.\n,a"); //a=111
return 0;
}
#include <stdio.h>
#define NUM 1
int main(void)
{
int a=0;
#if (NUM==0)
a=111;
#elif
a=222;
#endif
printf("a=%d.\n,a"); //a=222
return 0;
}