当前位置: 移动技术网 > IT编程>开发语言>C/C++ > C/C++学习笔记之define 用法详解

C/C++学习笔记之define 用法详解

2018年10月09日  | 移动技术网IT编程  | 我要评论

格里芬弹跳,桂林北站,因特达crm

1、简单的define定义

#define width 1920

#define height 1080

width代表1920,height 代表1080 ,

编译器在处理这个代码之前会对width 和height 进行替换

2、define的“函数定义”

define可以像函数那样接受一些参数,类似于函数模板
int sum = sum(10, 20)

3、宏的单行定义

在#define中,标准只定义了#和##两种操作。#用来把参数转换成字符串,##则用来连接两个前后两个参数,把它们变成一个字符串。

#define conn(x,y) x##y
#define tochar(x) #@x
#define tostring(x) #x

conn(12, 34) --> 1234

4、define的多行定义

在开发当中,我们可能会大量的写一些重复的,甚至具有“危险”的代码,用宏定义#define,往往可以简化代码。define可以替代多行的代码,例如mfc中的宏定义(非常的经典,虽然让人看了恶心)

#define mydefine(arg1,arg2,...) do {  \

    printf("hello\n");\

    printf("world\n");\

    printf(arg1);\

    printf("\n");\

    printf(arg2);\

    printf("\n");\

}while(0)  

int main(int argc, char const *argv[])

{ mydefine("owen", "chan"); }

5、在大规模的开发过程中,特别是跨平台和的软件里,define最重要的功能是条件编译。

#ifdef windows ...... ......
#endif
#ifdef linux ...... ......
#endif

可以在编译的时候通过#define设置编译环境。

6、如何定义宏、取消宏

#define [macroname] [macrovalue]  //定义宏
#undef [macroname] //取消宏

7. 防止一个头文件被重复包含

由于头文件包含可以嵌套,那么c文件就有可能多次包含同一个头文件,就可能出现重复定义的问题的。

通过条件编译开关来避免重复包含(重复定义)例如

#ifndef __headerfilexxx__
#define __headerfilexxx__ … //文件内容 …
#endif

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网