C语言第十一讲,预处理命令.

            C语言第十一讲,预处理命令.

一丶预处理简介

什么是预处理,预处理就是预先处理. 我们知道,程序会经过编译,连接形成可执行文件

这些在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理、提前处理)。

预处理主要是处理以#开头的命令,例如#include <stdio.h>等。预处理命令要放在所有函数之外,而且一般都放在源文件的前面。

二丶预处理命令

1.#include<> or #include""

#include命令是包含命令.<> 代表包含的是系统头文件. " " 表示包含的是自己定义的头文件

包含的意思就是 复制粘贴一份.但是我们可以放到一个文件中去保存.不影响代码可读性.

例如:

我们有一个A.h文件.其内容为下.

struct A
{
int a;
int b;
int c;
}

我们有一个.c文件.

#include"A.h"

int main()
{
struct A a;
a.a = ;
}

可以看出我们直接包含了结构体struct A,我们就可以直接定义结构体变量进行使用了.

其本质则是.

struct A
{
int a;
int b;
int c;
} int main()
{
struct A a;
a.a = ;
}

三丶C语言的宏定义命令

#define语句的使用

#define语句就是替换的意思.在编译之前.我们将某个值定义为某个值.

#include <stdio.h>

#define NUMBER 100

int main()
{
int sum = + NUMBER;
printf("%d\n", sum);
return ;
}

使用完#define命令之后, NUMBER代表的就是100.

四丶C语言的带参宏

在C语言中,C宏可以是有参数的.

定义语句如下:

#define 宏名(形参列表) 字符串

例如:

  

#define MAX(A,b)  (((A) > (b))?((A): (b)));

int main()
{
int a = MAX(,);
printf("%d",a);
}
输出结果:

我们只需要宏展开即可, A代表3,b代表4.

五丶条件宏的定义

指令         用途
# 空指令,无任何效果
#include 包含一个源代码文件
#define 定义宏
#undef 取消已定义的宏
#if 如果给定条件为真,则编译下面代码
#ifdef 如果宏已经定义,则编译下面代码
#ifndef 如果宏没有定义,则编译下面代码
#elif 如果前面的#if给定条件不为真,当前条件为真,则编译下面代码,其实就是else if的简写
#endif 结束一个#if……#else条件编译块
#error 停止编译并显示错误信息 

条件宏就是有条件的.比如 ifdef

#define DBG
#ifdef DBG 如果定义了宏DBG
#include<xxx.h>
#undef DBG 取消定义DBG宏.则下方在使用ifdef判断是否定义的DBG宏则会是没有定义.
上一篇:解决修改计算机名后tfs连接不上的错误


下一篇:Backbone.js 中的Model被Destroy后,不能触发success的一个原因