• define把参数变成字符串

     #define f(x)  printf("%s",#x);

  • define连接两个字符串

     #define a(x) a##x

  • define把参数变成字符

     #define  N(x)   #@x

  • 取消#define的作用域

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

  • define内联函数

     #define run() {puts("锄禾日当午1") ;\
    puts("锄禾日当午2");\
    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用法

     #ifdef  N
    #error 错误,不能定义N
    #endif

  • #if用法

     #if num==1
    #error 小伙子你的除数不要写为0,写了哥会溢出的
    #endif
  • 内置宏定义__LINE__,__FILE__,__DATE__,__TIME__,__FUNCTION__
     #define _CRT_SECURE_NO_WARNINGS
    #include<stdio.h>
    #include<stdlib.h>
    #line 1
    void main() //计数,从这一行开始
    {
    //改变行数,某一段到某一段一共多少行
    printf("%d\n", __LINE__);
    char path[];
    //获取当前文件地址
    sprintf(path, "%s", __FILE__);
    printf("%s", path);
    getchar();
    }
    1 printf("代码编译时间 %s %s\n", __DATE__,  __TIME__);
     printf("函数名%s\n", __FUNCTION__);
  • 条件编译 #if   #else   #endif

     #include<stdio.h>
    #define findWC 10
    void main()
    {
    #if findWC==1
    printf("拉");
    #else
    printf("憋");
    #endif
    getchar(); }

    #if   #elif   #endif

     // 'b'北京  's'四川, h 菏泽  a美帝
    #define manspeak 'b' void main3()
    { #if manspeak=='b'
    puts(" love you 1314");
    #elif manspeak=='h'
    puts("俺很稀罕你");
    #elif manspeak=='a'
    puts("i love you for ever");
    #elif manspeak=='s'
    puts("老子喜欢你,不喜欢我,你仙人板板的");
    #endif }

    #ifdef #ifndef

    #ifdef Debug
    printf("love you");
    #endif #ifndef test
    printf("没有定义test");
    #endif

90.#define高级用法的更多相关文章

  1. #define命令的一些高级用法

    =========================================================== define中的三个特殊符号:#,##,#@ ================= ...

  2. Visual Studio 宏的高级用法

    因为自 Visual Studio 2012 开始,微软已经取消了对宏的支持,所以本篇文章所述内容只适用于 Visual Studio 2010 或更早期版本的 VS. 在上一篇中,我已经介绍了如何编 ...

  3. break 的一个“高级用法”(转)

    转载:http://blog.csdn.net/lovelan1748/article/details/5321558 本小节不是很适于没有多少实际编程经历的初学者,所以初学者可以跳过,以后再回头阅读 ...

  4. C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com

    原文:C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | IT宅.com C语言语法笔记 – 高级用法 指针数组 指针的指针 二维数组指针 结构体指针 链表 | I ...

  5. Python3基础-高级用法

    写在前面:本文主要是python高级练习部分,介绍了一些高级用法,这些都是零散的小知识,这些可以与函数式编程合在一起使用. 函数式编程1:Python中提供的函数式编程主要有: map(函数,可迭代式 ...

  6. Python之Requests的高级用法

    # 高级用法 本篇文档涵盖了Requests的一些更加高级的特性. ## 会话对象 会话对象让你能够跨请求保持某些参数.它也会在同一个Session实例发出的所有请求之间保持cookies. 会话对象 ...

  7. sed高级用法:模式空间(pattern space)和保持空间(hold space)

    摘自:https://blog.csdn.net/ITsenlin/article/details/21129405 sed高级用法:模式空间(pattern space)和保持空间(hold spa ...

  8. Go template高级用法、深入详解、手册、指南、剖析

    入门示例 以下为test.html文件的内容,里面使用了一个template语法{{.}}. <!DOCTYPE html> <html> <head> <m ...

  9. ConxtMenu高级用法

    ##背景我们经常在列表的页面中,点击列表中的行,一般进入详情页面,长按列表中一行,会弹出一个菜单,包含了对某一行的操作(编辑.删除等等),也知道通常的用法: 0x01. 在Activity中注册需要上 ...

随机推荐

  1. HBase的单节点集群详细启动步骤(分为Zookeeper自带还是外装)

    伪分布模式下,如(weekend110)hbase-env.sh配置文档中的HBASE_MANAGES_ZK的默认值是true,它表示HBase使用自身自带的Zookeeper实例.但是,该实例只能为 ...

  2. javascript“类”与继承总结

    http://haorooms.com/post/js_jc_lei2

  3. mysql InnoDB加锁分析

    文章转载自:http://www.fanyilun.me/2017/04/20/MySQL%E5%8A%A0%E9%94%81%E5%88%86%E6%9E%90/ 以下实验数据基于MySQL 5.7 ...

  4. CCF模拟 I’m stuck!

    I’m stuck! 时间限制: 1.0s 内存限制: 256.0MB   问题描述 给定一个R行C列的地图,地图的每一个方格可能是'#', '+', '-', '|', '.', 'S', 'T'七 ...

  5. VC、IE、ASP环境下打印、预备的完美解决方式

    一种基于XML的报表开发工具,它支持从设计报表.调用API打印.预览,能支持分布式报表.方便报表的存储.转发. 在报表中能嵌入VBScript,能方便地訪问VB,VC的变量,能訪问COM组件.ADO等 ...

  6. 如日中天的Uber到底是用什么开发语言做到的?

    Uber将正在蓬勃发展的Go和Node.js这两个语言很好的融合到其系统上面来.Uber的站点可靠性project师Tom Croucher在近期于波兰举行的Node.js互动大会上详尽的对该公司所用 ...

  7. adb logcat 使用

    之前打印log的时候,使用的是别人配置好的快捷键,结果现在快捷键没有配置,具体的log命令就不会了.今天上网查了一下,记录下来 打印的log是 android.util.Log.e("zha ...

  8. SQL Server performance for alter table alter column change data type

    最近在搞一个升级脚本,发现有一张业务表中的某些字段长度需要调整,直接使用alter table alter column进行修改发现修改一列要用十几分钟!!!两三个列那用时简直不能容忍啊!google ...

  9. HTTP服务器状态码定义

    HTTP服务器状态代码定义 1.1 消息1xx(Informational 1xx) 该类状态代码用于表示临时回应.临时回应由状态行(Status-Line)及可选标题组成, 由空行终止.HTTP/1 ...

  10. css中linear-gradient的使用

    注明:此篇文章来自http://www.cnblogs.com/lhb25/archive/2013/01/30/css3-text-shadow.html.