C 基础 (预处理)

原创 2007年10月16日 11:27:00

1.宏替换

#define PI 3.1415926
double area(radius)
double radius;
{
return(PI*radius*radius)
}

由#  开始的命令是C预处理的命令。

#define是宏定义的命令。

#define string_first  string_second

它们是字符串,不能参与计算

宏定义必须写在第一次使用宏定义的代码之前。

宏定义不是以分毫结束的。

string_first  string_second之间至少有一个空格。

string_first 称为宏,string_second称为宏扩展。

宏名使用大写是一个传统习惯。

使用宏的好处:

简化程序的书写,提高程序的可读性,便于程序修改,提高程序的可移植性。

预处理程序将不替换字符串中或用单引号括起来的字符串常量的宏。

简单宏替换:

前面的宏定义可以被后面的引用。

#define PI 3.1415926

#define PISQR PI*PI

带有参数的宏替换。

#define 宏名(参数) 参数表达式

宏名和参数表之间不能有空格。在函数中使用宏名和实参组成的字符序列称之为宏调用。

cpp c文件名字

type 文件名.i

以上的命令是查看替换后的代码。

带有参数的宏调用和函数调用是完全不同的。宏调用是在编译之前完成的,函数调用是在编译之后实现的。

取消宏定义:

#undef 宏名

作用:在这命令后宏不会起作用。

2.文件包含

#include "文件名"---首先在当前目录中寻找文件,如果找不到,在到一系列系统预先设定的目录中去找。

#include <文件名>---直接到系统预先设定的目录中去找。

#include 命令只能指定一个被包含的文件。

#include 可以嵌套,但是不能递归包含。

3.条件编译

希望程序的一部分满足一定的条件才能编译。

条件编译有以下几种形式:

#if 常量表达式

程序段

#endif

作用:如果常量表达式为真,则相应的程序段就被编译。

常量表达式是由宏和常量来构成的。

其它结构和IF一致,只是加了#

 #ifdef 宏名

  程序段

#endif

有那个宏名就编译。

 

 

C语言中的预处理详解

目录   一.预处理的工作方式... 3 1.1.预处理的功能... 3 1.2预处理的工作方式... 3 二.预处理指令... 4 2.1.预处理指令... 4 2.2.指令规则... 4 三.宏...
  • DLUTBruceZhang
  • DLUTBruceZhang
  • 2013年04月02日 23:04
  • 20769

关于C文件预处理的理解

本文主要介绍: 1.预定义符号 2.宏和函数的区别 3.理解编译链接的整个过程和详细的每个过程 1.预定义符号 这些符号的值可以给我们提供一些编译C程序文件时的信息,给我们调试或创建日志文件提供便...
  • haitang_yue
  • haitang_yue
  • 2016年10月17日 17:01
  • 555

C语言的预处理指令

预处理指令是c语言支持的一种特殊指令 它们以#做开头,不以;做结尾 预处理指令在编译的第一个阶段被处理 所有预处理指令都是把程序变成另外的样子 gcc可以使用-E选项单独处理所有预处理指令 ...
  • Robot__Man
  • Robot__Man
  • 2016年06月22日 10:50
  • 443

C语言提供的三种预处理命令

#ifdef
  • xiongzebao
  • xiongzebao
  • 2015年05月09日 16:19
  • 547

C语言三种预处理功能

1. 宏定义 2. 文件包含 3. 条件编译 伪指令(或预处理指令)定义: 预处理指令是以#号开头的代码行。#号必须是该行除了任何空白字符外的第一个字符。#后是指令关键字,在关键字和#号之间允许存...
  • u012050154
  • u012050154
  • 2016年06月15日 15:37
  • 6482

C语言预处理命令解析

C语言的源代码中可以包括各种编译指令,这些指令就称之为预处理命令。虽然它们实际上不是c语言的一部分,但却扩展了c程序设计的环境,预处理程序和注释简化程序开发过程,并且提高程序的可读性。然而这些命令是在...
  • farsight2009
  • farsight2009
  • 2017年01月18日 15:57
  • 551

c语言编译预处理和条件编译执行过程的理解

在C语言的程序中可包括各种以符号#开头的编译指令,这些指令称为预处理命令。预处理命令属于C语言编译器,而不是C语言的组成部分。通过预处理命令可扩展C语言程序设计的环境。 一.预处理的工作方式   ...
  • liaoshengshi
  • liaoshengshi
  • 2015年11月12日 00:24
  • 1027

C语言中如何去理解预处理阶段

C语言如何去理解预处理阶段预处理宏定义( 无参宏定义,带参宏定义)条件编译文件包含预处理操作符号和预定义宏下面将会依次的去介绍各个阶段中的一些细节性东西预处理首先在C语言编译的时候,会经历以下几个步骤...
  • qq_29924041
  • qq_29924041
  • 2017年02月08日 23:32
  • 1192

C语言再学习 -- C 预处理器

一、#define
  • qq_29350001
  • qq_29350001
  • 2016年11月14日 14:48
  • 1581

C基础——预处理

1.预处理指令:   定义:1>预处理指令是指将代码翻译成0和1之前执行的指令。         2>全部是#开头,预处理指令位置可以随便写。   分类: 宏...
  • whbsspu
  • whbsspu
  • 2014年11月14日 15:02
  • 229
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C 基础 (预处理)
举报原因:
原因补充:

(最多只允许输入30个字)