90.#define高级用法

Posted 喵小喵~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了90.#define高级用法相关的知识,希望对你有一定的参考价值。


  • define把参数变成字符串
    1 #define f(x)  printf("%s",#x);

     


  • define连接两个字符串
    1 #define a(x) a##x

     


  • define把参数变成字符
    1 #define  N(x)   #@x

     


  • 取消#define的作用域
    1 #undef  MN  //取消define的作用域

     


  • define内联函数
    1 #define run() {puts("锄禾日当午1") ;2              puts("锄禾日当午2");3          puts("锄禾日当午3");}

     


  • define定义assert
  •  assert用法
    1 assert(a = 0);

     

  • 宏定义assert
    1 #define ASSERT(x)  2        if((x))3        {       4          printf("ASSERT %s 代码出错\n",#x)  ;     5          printf("文件%s %d行\n",__FILE__,__LINE__)  ;           6            printf("函数%s \n",__FUNCTION__)  ;           7          abort(), getchar();8          return ;   9        }

  • #ifdef,#error用法
    1 #ifdef  N
    2 #error 错误,不能定义N
    3 #endif

     


  • #if用法
    1 #if num==1
    2 #error 小伙子你的除数不要写为0,写了哥会溢出的
    3 #endif

     

  • 内置宏定义__LINE__,__FILE__
     1 #define _CRT_SECURE_NO_WARNINGS
     2 #include<stdio.h>
     3 #include<stdlib.h>
     4 #line  1
     5 void main() //计数,从这一行开始
     6 {
     7     //改变行数,某一段到某一段一共多少行
     8     printf("%d\n", __LINE__);
     9     char path[100];
    10     //获取当前文件地址
    11     sprintf(path, "%s", __FILE__);
    12     printf("%s", path);
    13     getchar();
    14 }

     

 

以上是关于90.#define高级用法的主要内容,如果未能解决你的问题,请参考以下文章

c语言中define的用法

SpringBoot启动报错“Consider defining a bean of type ‘xxx.mapper.UserMapper‘ in your configuration.“(代码片段

c/c++中define用法详解及代码示例

define的用法

Python切片中的误区与高级用法

前端框架怎么用??用的好处是什么?