#define的一些使用方法
来源:互联网 发布:苹果电脑没有mac系统 编辑:程序博客网 时间:2024/05/16 08:46
1.可以对一些常量、字符串进行宏定义,在预处理过程中进行替换,而不是在编译过程中。
#define PI 3.1415926
2.也可以对数据类型进行宏定义,这样与typedef效果相同
typedef为C语言的关键字,作用是为一种数据类型定义一个新的名字。
#define UINT unsigned int (宏定义中的变量约定俗成要大写)
typedef unsigned char uchar; (typedef需要在后边加一个;)
3.带参数的宏
#define ADD(a,b) ((a)+(b))
尽量在使用的时候全部加上括号,如果不加括号将会存在安全隐患。
例如出现这种情况
#define ADD(a,b) (a)+(b)
ADD(2,3)*ADD(4,5)
进行替换之后就会出现这样的情况 2+3*4+5 这肯定不是我们想要的结果。
#define MUL(a,b) (a*b)
MUL(5+3,4+6) 替换之后5+3*4+6 这也不是我们想要的结果
所以在使用带参数的宏的时候,加括号是必须的。
4.define的多行定义
define可以替代多行的代码,例如MFC中的宏定义
#define MACRO(arg1, arg2) do { /
/* declarations */ /
stmt1; /
stmt2; /
/* ... */ /
} while(0) /* (no trailing ; ) */
关键是要在每一个换行的时候加上一个"/"
5.在大规模的开发过程中,特别是跨平台和系统的软件里,define最重要的功能是条件编译。
就是:
#ifdef WINDOWS
......
......
#endif
#ifdef LINUX
......
......
#endif
可以在编译的时候通过#define设置编译环境。
6. 防止一个头文件被重复包含
由于头文件包含可以嵌套,那么C文件就有可能多次包含同一个头文件,就可能出现重复定义的问题的。
通过条件编译开关来避免重复包含(重复定义)
#ifndef __FUNC_H__
#define __FUNC_H__
//头文件内容
#endif
由于头文件包含可以嵌套,那么C文件就有可能多次包含同一个头文件,就可能出现重复定义的问题的。通过条件编译开关来避免重复包含(重复定义)。因为当它编译第一个头文件时总是没有定义#define __FUNC_H__,那么它将编译一遍头文件中所有的内容,包括定义#define __FUNC_H__。这样编译再往下进行时如果遇到同样要编译的头文件,那么由于语句#ifndef __FUNC_H__的存在它将不再重复的编译这个头文件。
- #define的一些使用方法
- C/C++中一些#define使用方法
- 一些#define的用法
- #Define的一些用法
- #define的一些用法
- C++中#define的使用方法
- ifndef,#define,#endif的使用方法
- C++中#define的使用方法
- #define的一些用法(转)
- define的一些小小理解
- #define的一些注意点
- #define 的一些基本用法
- #define 宏的一些使用
- DEFINE~END-OF-DEFINITION的使用方法
- 浅谈VC中define的使用方法
- #define 宏定义的使用方法详解
- DateTime的一些使用方法
- 一些Blog的使用方法
- 搜索二叉树
- HDU3400(三分)
- C++关于引用问题
- 数据结构和算法学习笔记-2
- 把握linux内核设计思想(三):下半部机制之软中断
- #define的一些使用方法
- iOS开发:iOS中几种数据持久化方案:你要永远地记住!
- c++问题
- 内存空间的一般性区域分布图
- hibernate 一对一映射的两种方式
- S3C2440系统时钟
- 学习。On the way 。
- 我在无线互联的学习记录连载一
- NV终于出必杀!怪兽显卡GTX TITAN首测