前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C语言第十一讲,预处理命令.

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

作者头像
IBinary
发布2018-07-31 16:32:07
7570
发布2018-07-31 16:32:07
举报
文章被收录于专栏:逆向技术

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

一丶预处理简介

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

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

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

二丶预处理命令

1.#include<> or #include""

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

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

例如:

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

代码语言:javascript
复制
struct A 
{
   int a;
   int b;
   int c;  
}

我们有一个.c文件.

代码语言:javascript
复制
#include"A.h"

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

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

其本质则是.

代码语言:javascript
复制
struct A
{
   int a;
   int b;
   int c;
}

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

三丶C语言的宏定义命令

#define语句的使用

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

代码语言:javascript
复制
#include <stdio.h>

#define NUMBER 100

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

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

四丶C语言的带参宏

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

定义语句如下:

代码语言:javascript
复制
#define 宏名(形参列表) 字符串

例如:

代码语言:javascript
复制
#define MAX(A,b)  (((A) > (b))?((A): (b)));

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

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

五丶条件宏的定义

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

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

代码语言:javascript
复制
#define DBG
#ifdef DBG   如果定义了宏DBG
    #include<xxx.h>
#undef DBG  取消定义DBG宏.则下方在使用ifdef判断是否定义的DBG宏则会是没有定义.
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2018-06-06 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  •             C语言第十一讲,预处理命令.
    • 一丶预处理简介
      • 二丶预处理命令
        • 1.#include<> or #include""
      • 三丶C语言的宏定义命令
        • #define语句的使用
      • 四丶C语言的带参宏
        • 五丶条件宏的定义
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档