c/c++语言开发共享C/C++学习笔记之define 用法详解

1、简单的define定义 #define width 1920 #define height 1080 width代表1920,height 代表1080 , 编译器在处理这个代码之前会


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("hellon");        printf("worldn");        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

本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。

ctvol管理联系方式QQ:251552304

本文章地址:https://www.ctvol.com/c-cdevelopment/607229.html

(0)
上一篇 2021年5月14日
下一篇 2021年5月14日

精彩推荐