码迷,mamicode.com
首页 > 其他好文 > 详细

程序周期及预处理

时间:2014-12-26 12:30:28      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:

处理过程:预处理、编译、连接

1、预处理:不是C++语句,不加;,必须以#开头

2、编译:先分析后综合,存储分配,目标代码生成

3、连接:不同文件之间重定位处理

预处理命令

{宏定义,文件包含,条件编译}

一、宏定义

用字符文本替换宏名

1、不带参的宏

#define 宏名 字符文本

(1)宏名按标识符取名,一般全大写,字符文本可以是任何(包括关键字

(2)字符串常量,标识符的一部分不会替换(只是整体的一部分)

(3)同一宏不要定义多次,先取消,再定义,#undef

(4)宏的作用范围:从#define开始,到#undef结束(缺省则到源程序末尾)

(5)通常将宏定义在开头或头文件

(6)宏定义允许嵌套,即在字符文本中可以引用已定义的宏名

2、带参的宏

#define 宏名(参数表) 字符文本

(1)宏名与括号之间无空格,否则理解为不带参

(2)先进行参数替换

二、文件包含

1、<>仅在系统路径查找,调用标准库

2、“”先在项目中查找,再在系统查找,调用自己编写的头文件

3、头文件通常包含:函数申明、全局常量、全局变量、类型申明、宏定义

三、条件编译

1、#define定义条件

2、#ifdef,#ifndef

 

#define    //先定义,不管有没有值

#ifdef 条件字段 ...
//程序代码一 #else ... //程序代码二 #endif

//ifndef与ifdef相反

 

3、#if

#if  常量表达式  //仅能使用define过的表达式
...   //代码段1
#elif
...  //代码段2
#else
...  //代码段3
#endif

4、# ifdef=# if defined  ;  #ifndef=#if !defined  ;  

四、其他命令

1、#error:显示信息并且停止编译

2、#pragma once:编译时仅包含(打开)一次

3、#line

程序周期及预处理

标签:

原文地址:http://www.cnblogs.com/noengi/p/4186089.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!