3.C语言中的预处理命令怎么写,C语言的预处理命令

C语言编译器处理时经过的第一个步骤是预处理,就是从.c文件处理为.i文件。在预处理时编译器做了一些展开替换的处理。

1>头文件展开,即将#include “stdio.h”类似的文件展开。

2>宏定义的替换工作,即将程序中的宏定义内容替换好。

#include”stdio.h”

#define R 10

int main()

{

int a = R;

}

经过预处理之后代码变为

//…stdio.h里的内容未展示

//宏定义的地方已经替换到程序中

int main()

{

int a = 10;

return 0;

}

宏定义做的替换是整体替换,和语法无关,它不遵循语法规则。

宏定义一般两种用法,一种是定义一种常量,另一种是定义一个宏函数。

#define N(n,m) n+m//宏定义

int main()

{

int c;

c = N(1,2);//对1和2相加

return 0;

}

其实经过预处理之后变为

int main()

{

int c;

c = 1 + 2;

return 0;

}

另一种应用宏函数,因为宏定义不会考虑语法,它只是作整体代换,所以可以写出不考虑变量类型的函数,这一点是他的优点

举例说明,如下代码:

#define N(n,m) n+m//宏定义

int main()

{

int e = N(10,20) * N(10,20)//预处理之后是int e = 10 + 20 * 10 + 20;

//上面容易算错误!!

return 0;

}

3>条件编译:有些语句希望在条件满足时才编译。

#ifdef 标识符

//程序段1

#else

//程序段2

#endif

当标识符已经定义时,程序段1才参加编译

在其使用时和define一样也是做了一个替换工作。

对C语言有了一定认识。。。看Linux C语言视频学的。

C语言之预处理命令

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

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

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

C语言之预处理命令与用typedef命名已有类型

预处理命令 主要是改进程序设计环境,以提高编程效率,不属于c语言本身的组成部分,不能直接对它们进行编译,必须在对 程序编译之前,先对程序中的这些特殊命令进行“预处理”.比如头文件. 有以下三类:宏定义 …

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

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

Fluent UDF【6】:预处理命令

今天要讲的内容是关于C语言的预处理.搞清楚了这个,就可以分析UDF中的各种头文件源代码,从此写UDF不求人. 1 关于预处理 在UDF的各种头文件中(文件路径D:\Program Files\ANSY …

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

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

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

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

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

C语言第十一讲,预处理命令. 一丶预处理简介 什么是预处理,预处理就是预先处理. 我们知道,程序会经过编译,连接形成可执行文件 这些在编译之前对源文件进行简单加工的过程,就称为预处理(即预先处理.提前 …

C语言预处理命令详解

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

随机推荐

centos iptables

1.查看本机关于IPTABLES的设置情况iptables -L -niptables –listmore /etc/sysconfig/iptablesservice iptables statu …

C# 有关命名法

常用的几种:匈牙利命名法,骆驼命名法,帕斯卡(pascal)命名法就说了. 总结下VS所用的标准命名: 1 ADO.NET 命名规范 数据类型 数据类型简写 标准命名举例 Connection con …

float,double,decimal使用讨论

注意:有效位:小数点前后的全部数字,不包括小数点在内 float:浮点型,含字节数为4,32bit,数值范围为-3.4E38~3.4E38(7个有效位) double:双精度实型,含字节数为8,64b …

hdu 1556 树状数组+点查询

树状数组 N个气球排成一排,从左到右依次编号为1,2,3….N.每次给定2个整数a b(a <= b),lele便为骑上他的“小飞鸽”牌电动车从气球a开始到气球b依次给每个气球涂一 …

如何在给快满的Linux分区&quot&semi;无伤&quot&semi;扩容

1. 首先在虚拟机设置里面设置磁盘的扩展,前提条件是该虚拟机没有快照. 2. 在虚拟机设置好以后,需要开机在系统里扩容磁盘 3. 使用 # fdisk /dev/sda 扩展磁盘,具体操作使用 m 选 …

【转】Java 集合系列03之 ArrayList详细介绍&lpar;源码解析&rpar;和使用示例

原文网址:http://www.cnblogs.com/skywang12345/p/3308556.html 上一章,我们学习了Collection的架构.这一章开始,我们对Collection的具 …

Mycat 分片规则详解–自然月分片

实现方式:按照月份列分片,每个自然月一个分片 优点:使数据按照每月来进行分时存储 缺点:由于数据是连续的,所以该方案不能有效的利用资源 配置示例:

    原文作者:一场孤独的旅行
    原文地址: https://blog.csdn.net/weixin_29614791/article/details/117183423
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞