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宏则会是没有定义.

C语言第十一讲,预处理命令.的更多相关文章

  1. C++学习(二十七)(C语言部分)之 预处理命令

    结构体 联合 枚举 联合 只能保存最后赋值的结果枚举 所有可能值列出来 预处理命令是在编译前期的阶段 代码-(编译)-->可执行文件(exe)预编译 编译前对代码处理 *1.插入头文件的内容 # ...

  2. C语言第十一回合:预处理命令的集中营

    C语言第十一回合:预处理命令的集中营   [学习目标]   1.         宏定义 2.         文件包括"处理 3.         条件编译 预处理命令:能够改进程序设计的 ...

  3. C语言中的预处理命令

    预处理功能是C语言的重要功能. 问:为什么要预处理,什么是预处理? 答:我们知道高级语言的运行过程是通过编译程序(编译器)把源代码翻译成机器语言,实现运行的.编译程序的工作包含:语法分析.词法分析.代 ...

  4. C语言include预处理命令与多文件编译

    #include预处理命令几乎使我们在第一次接触C的时候就会碰到的预处理命令,可我现在还不怎么清楚,这次争取一次搞懂. 一.#include预处理指令的基本使用 预处理指令可以将别处的源代码内容插入到 ...

  5. 【C语言入门教程】2.8 C 语言的预处理命令

    预处理命令是在程序编译阶段进行执行的命令,用于编译与特定环境相关的可执行文件.预处理命令扩展了 C 语言,本节将选择其中一些常用的预处理命令进行讲解. 2.8.1 宏替换命令 宏替换命令的作用类似于对 ...

  6. 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出

    [源码下载] 不可或缺 Windows Native (4) - C 语言: 预处理命令,输入,输出 作者:webabcd 介绍不可或缺 Windows Native 之 C 语言 预处理命令 输入 ...

  7. C语言之预处理命令

    /**************************************************************************** Title:C之预处理命令 Time:201 ...

  8. C语言预处理命令总结大全

    C程序的源代码中可包括各种编译指令,这些指令称为预处理命令.虽然它们实际上不是C语言的一部分,但却扩展了C程序设计的环境.本节将介绍如何应用预处理程序和注释简化程序开发过程,并提高程序的可读性.ANS ...

  9. C语言预处理命令详解

    一  前言 预处理(或称预编译)是指在进行编译的第一遍扫描(词法扫描和语法分析)之前所作的工作.预处理指令指示在程序正式编译前就由编译器进行的操作,可放在程序中任何位置. 预处理是C语言的一个重要功能 ...

随机推荐

  1. iOS高德地图SDK定位和搜索附近信息的具体使用

    1.显示地图.定位.显示当前位置. 导入你需要的功能的头文件,申明全局变量,代理方法等等.   初始化地图,在控制器即将显示额时候打开定位和跟踪用户,这里对参数不懂的话康忙进去都有注释.   对了.i ...

  2. 1-JRE与JDK等知识

  3. Alpha项目冲刺

    一.团队成员 学号 姓名 211606361 何承华(队长) 211606356 陈宇 211606360 丁培辉 211606333 温志铭 211606343 杨宇潇 211606391 张主强 ...

  4. HTTP1.1协议-RFC2616-中文版

    转自:http://www.cnblogs.com/k1988/archive/2010/01/12/2165683.html 说明 本文档规定了互联网社区的标准组协议,并需要讨论和建议以便更加完善. ...

  5. 第37章:MongoDB-集群--Replica Sets(副本集)---单机的搭建

    ①创建副本集 1:先创建几个存放数据的文件夹,比如在前面的dbs下面创建db1,db2,db3: 同理在前面的logs下面创建logs1,logs2,logs3 2:在启动MongoDB服务器的时候, ...

  6. 序列化与Json

    序列化: 将数据结构或对象转换成二进制串的过程. 反序列化:将在序列化过程中所生成的二进制串转换成数据结构或者对象的过程. 首先我们通过复制文件举例,这里面就包含序列化与反序列化的过程: public ...

  7. 网页中的数据的4个处理方式:CRUD(Creat, Retrive, Update, Delete)

    网页中的数据的4个处理方式:CRUD(Creat, Retrive, Update, Delete) 2018-12-21, 后续完善

  8. req、js

    requests库中,可不写为headers内各键值对的部分参数:   s=requests.Session()  #或.session() s.allow_redirects=False #禁止重定 ...

  9. Python学习第三章

    1.模块: 其实每个.py文件本身就是一个模块,当读者做完了一个.py文件,如果别人打算直接分享你的成果,只要在他编写的.py文件中倒入(import)就好了. 比如想在hello1.py文件里直接使 ...

  10. 多态&虚函数

     (1).对象类型:           a.静态类型:对象声明时的类型,编译的时候确定           b.动态类型:对象的类型是运行时才能确定的 class A {}; class B:pub ...