2. 预处理指令

Wesley13
• 阅读 570

2. 预处理指令

2.1 宏定义。#define指令定义一个宏,#undef指令删除一个宏
2.2 文件包含。#include指令将包含当前文件到程序中。
2.3 条件编译。#if、#ifdef、#ifndef、#elif、#else和#endif,将根据条件包含代码块到程序当中,或将代码块排除在程序外。
预定义指令的规则:
1. 指令以#号打头,并且不是必须定义在程序开始位置(虽然都这样定义)
2. 指令之间可以插入任意空格,例如: #  define     N                          10
3. 指令总是在第一个换行处结束,除非使用\字符续行,例如,下面是cocos2d-x游戏引擎中的一个宏定义代码:
#define CREATE_FUNC(__TYPE__) \
static __TYPE__* create() \
{ \
__TYPE__ *pRet = new __TYPE__(); \
if (pRet && pRet->init()) \
{ \
pRet->autorelease(); \
return pRet; \
} \
else \
{ \
delete pRet; \
pRet = NULL; \
return NULL; \
} \
}
4. 注释可以和指令放在同一行,例如: #define N 15  /* 定义数组大小*/

该博客教程视频地址:http://geek99.com/node/1015

点赞
收藏
评论区
推荐文章
CuterCorley CuterCorley
3年前
C语言入门系列之9.预处理
在之前,已多次使用过以号开头的预处理命令,如包含命令include<stdio.h、宏定义命令definePI3.1415926535等。在源程序中这些命令都放在函数之外,而且一般都放在源文件的前面,它们称为预处理部分。一、无参宏定义1.基本使用无参宏的宏名后不带参数。其定义的一般形式为:cdefine标识符
并发编程
并发编程笔记本博客根据学习而做的笔记,链接如下一、基本概念1、进程与线程进程程序由指令和数据组成,但这些指令要运行,数据要读写,就必须将指令加载至CPU,数据加载至内存。在指令运行过程中还需要用到磁盘、网络等设备。进程就是用来加载指令、管理内存、管理IO的。当一个程序被运行,从磁盘加载这个程序的代码至内存,这时就开启了一个进程。进程
Wesley13 Wesley13
3年前
Java并发(三):重排序
在执行程序时为了提高性能,提高并行度,编译器和处理器常常会对指令做重排序。重排序分三种类型:1.编译器优化的重排序。编译器在不改变单线程程序语义的前提下,可以重新安排语句的执行顺序。2.指令级并行的重排序。现代处理器采用了指令级并行技术(InstructionLevelParallelism,ILP)来将多条指令重叠执行。如果不存在数据依
Wesley13 Wesley13
3年前
Java虚拟机(一):JVM简介
JVM简介Java虚拟机(JVM)是由Java虚拟机规范定义的,其上运行的是字节码指令集。这种字节码指令集包含一个字节的操作码(opcode),零至多个操作数(oprand),虚拟机规范明确定义了每种字节码指令完成的功能是什么以及需要多少个操作数。Java虚拟机上运行的class文件,这个文件中包含字节码指令流以及类定义的信息,所以Java虚
Stella981 Stella981
3年前
Nginx常用配置指令说明
Nginx常用配置指令说明注意:局部作用域的配置指令可覆盖全局作用域的配置指令1、不在http响应头中显示Nginx的版本可用于http{}配置块和server{}配置块server_tokensoff;2、索引文件可用于http{}配置块和server{}配置块indexindex.htmlindex.ph
Wesley13 Wesley13
3年前
CPU知识点一览
关于CPU和程序的执行1、程序的运行过程,实际上是程序涉及到的、未涉及到的一大堆的指令的执行过程。当程序要执行的部分被装载到内存后,CPU要从内存中取出指令,然后指令解码(以便知道类型和操作数,简单的理解为CPU要知道这是什么指令),然后执行该指令。再然后取下一个指令、解码、执行,以此类推直到程序退出。2、这个取指、
Wesley13 Wesley13
3年前
Java的特点之一——与平台无关
    Java出现之前,C和C是当时广泛使用的编程语言。但是C和C都有一个共同的缺点,那就是只能在特定的平台进行编译。这里指的平台是由操作系统(OS)和处理器(CPU)构成的。C和C源程序所在的特定平台对其源文件进行编译、连接,生成当前平台的机器指令(平台的机器指令可以被该平台直接识别和执行),根据当前平台的机器指令生成可执
Wesley13 Wesley13
3年前
JAVA字节码执行引擎总结
字节码指令大部分操作指令都有对应不同类型的不同指令,比如iloadistoreireturn表示加载(整形变量进操作数栈)、定义一个整形局部变量、返回一个int类型值return11》iconst2;ireturn编译期优化:直接将11定义为常量2运行时就不用再做计算了这段代码操作数栈的最大深度是2
Stella981 Stella981
3年前
Angular内置指令
Angular2的内置指令可分为通用指令、路由指令、表单指令。通用指令包含7种,均包含在CommonModule模块中,CommonModule已经包含在了BrowserModule中。NgClassNgstyleNgIfNgForNgSwitch、NgSwitchCase、NgSwitchDe
胖大海 胖大海
2年前
Nginx通用语法规则说明
一、Nginx配置语法:配置文件有指令与指令块构成每条指令以;分号结尾,指令与参数间以空格符号分隔指令块以{}大括号将多条指令组织在一起include语句允许组合多个配置文件以提升可维护性使用符号添加注释,提高可读性