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

  • #ifdef,#error用法

    1. #ifdef N
    2. #error 错误,不能定义N
    3. #endif

  • #if用法

    1. #if num==1
    2. #error 小伙子你的除数不要写为0,写了哥会溢出的
    3. #endif
  • 内置宏定义__LINE__,__FILE__,__DATE__,__TIME__,__FUNCTION__
    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[];
    10. //获取当前文件地址
    11. sprintf(path, "%s", __FILE__);
    12. printf("%s", path);
    13. getchar();
    14. }
    1. 1 printf("代码编译时间 %s %s\n", __DATE__, __TIME__);
    1. printf("函数名%s\n", __FUNCTION__);
  • 条件编译 #if   #else   #endif

    1. #include<stdio.h>
    2. #define findWC 10
    3. void main()
    4. {
    5. #if findWC==1
    6. printf("拉");
    7. #else
    8. printf("憋");
    9. #endif
    10. getchar();
    11.  
    12. }

    #if   #elif   #endif

    1. // 'b'北京 's'四川, h 菏泽 a美帝
    2. #define manspeak 'b'
    3.  
    4. void main3()
    5. {
    6.  
    7. #if manspeak=='b'
    8. puts(" love you 1314");
    9. #elif manspeak=='h'
    10. puts("俺很稀罕你");
    11. #elif manspeak=='a'
    12. puts("i love you for ever");
    13. #elif manspeak=='s'
    14. puts("老子喜欢你,不喜欢我,你仙人板板的");
    15. #endif
    16.  
    17. }

    #ifdef #ifndef

    1. #ifdef Debug
    2. printf("love you");
    3. #endif
    4.  
    5. #ifndef test
    6. printf("没有定义test");
    7. #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. 2008R2域控环境中 应用组策略 实现禁用USB设备使用

    本文介绍如何在Windows Server 2008 AD中禁用客户端USB端口.本文使用的系统:Windows Server 2008 R2 企业版.域功能级别:Windows Server 200 ...

  2. 织梦DedeCMS判断简略标题为空时则显示完整标题

    使用织梦DedeCMS系统程序开发网站中,我们会遇到很多因网页版面设计限定的宽度,使文章标题需要进行字数限制,通常做法是在a标签中加入一个title属性,让鼠标放上去的时候显示完整标题.但是标题被剪裁 ...

  3. U-BOOT启动流程分析--start.s(二)

    一.概述 u-boot的启动流程: 从文件层面上看主要流程是在两个文件中:cpu/arm920t/start.s,lib_arm/board.c, 先来分析start.s    在flash中执行的引 ...

  4. CSUOJ 1551 Longest Increasing Subsequence Again

    1551: Longest Increasing Subsequence Again Time Limit: 2 Sec  Memory Limit: 256 MBSubmit: 75  Solved ...

  5. Java技术——Java泛型详解(转)

    ); for (int i = 0; i < list.size(); i++) { String name = (String) list.get(i); //取出Integer时,运行时出现 ...

  6. Java 实现有序链表

    有序链表: 按关键值排序. 删除链头时,就删除最小(/最大)的值,插入时,搜索插入的位置. 插入时须要比較O(N),平均O(N/2),删除最小(/最大)的在链头的数据时效率为O(1), 假设一个应用须 ...

  7. Android插件化(二):使用DexClassLoader动态载入assets中的apk

    Android插件化(二):使用DexClassLoader动态载入assets中的apk 简单介绍 上一篇博客讲到.我们能够使用MultiDex.java载入离线的apk文件.须要注意的是,apk中 ...

  8. 机器学习Python实现AdaBoost

    adaboost是boosting方法多个版本号中最流行的一个版本号,它是通过构建多个弱分类器.通过各个分类器的结果加权之后得到分类结果的.这里构建多个分类器的过程也是有讲究的,通过关注之前构建的分类 ...

  9. js---10时间类

    <!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content ...

  10. java高质量缩放图片

    可按照比例缩放,也可以指定宽高 import com.sun.image.codec.jpeg.JPEGImageEncoder; import com.sun.image.codec.jpeg.JP ...