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 = 1;  
}

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

其本质则是.

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

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

三丶C语言的宏定义命令

#define语句的使用

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

#include <stdio.h>

#define NUMBER 100

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

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

四丶C语言的带参宏

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

定义语句如下:

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

例如:

  

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

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

我们只需要宏展开即可, 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宏则会是没有定义.

猜你喜欢

转载自www.cnblogs.com/iBinary/p/9143901.html
今日推荐