首页 > 代码库 > 程序周期及预处理
程序周期及预处理
处理过程:预处理、编译、连接
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
程序周期及预处理
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。