最常见的就是

#indef __cplusplus

这表示支持C++语法

再如可以定义常量

#define MAX 100

这跟JAVA全局变量有什么区别呢?

JAVA的变量是有类型的,这没有类型,这只是替换而以!

还有就是宏函数,就是就是当函数名太长时,可以简写而以!void cat_read(){

printf("%s\n","input something");

}#define jni(NAME) cat_##NAME();

void main(){

jni(read);

system("pause");

}

上面就是将cat_read这个方法函数,变成了 jni(read)来调用!很简单哇-

举个日志输出的例子#define LOG(FORMAT,...) printf(##FORMAT,__VA_ARGS__);

void main(){

LOG("%s","123");

system("pause");

}

定义了一个LOG函数,其实...表示不确定后面有几个参数,也许1个,也许多个,与后面的__VA_ARGS__对应,这表示可变参数,这是固定写法

第一个参数 FORMAT,并不是固定写法,可以替换成任意字符串,比如NAME

再比如,日志会有级别,比如I级,这里可以这样写#define LOG_I(FORMAT,...) printf("INFO:");printf(##FORMAT,__VA_ARGS__);

void main(){

LOG_I("%s", "123");

system("pause");

}

最终就会输出:INFO:123

说穿了就是替换。在程序的预编译期完成替换工作。

再来个升级的LOG写法#define LOG(LEVEL,FORMAT,...) printf(##LEVEL); printf(##FORMAT,__VA_ARGS__);

#define LOG_I(FORMAT,...) LOG("INFO:",##FORMAT,__VA_ARGS__);

void main(){

LOG_I("%s", "123");

system("pause");

}

相当于第二个LOG_I的定义,又引用了第一个定义,相当于替换了两次

java define 宏_宏定义宏函数(日志输出)define相关推荐

  1. 【Python定义一个函数,输出100以内是3的倍数的所有偶数】

    题目: 定义一个函数,输出100以内是3的倍数的所有偶数. 思路: 先用def定义一个函数,后利用for循环遍历100以内所有数,并用if语句筛选数字,最后得出是3的倍数的偶数 代码: def fun ...

  2. [C语言] 在单片机的嵌入式开发中使用宏定义一键开关日志输出/打log调试

    前言 在编写项目时,我们通常需要日志输出来帮助我们追踪程序执行的内容,以便在出现BUG时较为方便的复现,并在调试完成后快速的关闭过于详细的LOG输出,避免干扰使用中的体验,在函数中一个一个的增加pri ...

  3. access重命名自动保存的宏_如何将宏保存为自动执行的宏计算机二级access的一个题目。 题目完整为“请重命名宏mTest,并保存为自动执行宏。”...

    共回答了19个问题采纳率:100% 关于宏 如果在 Microsoft Word 中反复执行某项任务,可以使用宏自动执行该任务.宏是一系列 Word 命令和指令,这些命令和指令组合在一起,形成了一个单 ...

  4. 华为如何在开发者选项观察错误日志_爬虫scrapy框架--log日志输出配置及使用

    1.在配置文件中设置日志输出文件名和日志等级 1.为什么以日期为文件名? 因为这样可以方便开发者查看每天的日志信息,同时也可以防止单文件log日志信息堆积的越来越多,所以将当天日志信息保存到当天的日志 ...

  5. excel打印宏_使用Excel宏打印发票

    excel打印宏 There is a sample file on my Contextures site, in which you can enter invoice details, then ...

  6. java native方法_并发系列-native函数回调Java方法原理实践

    写在前面 上一篇分享了Java调用native函数过程原理实践,文章最后留了一个问题,本章主要对C程序回调我们的Java程序原理进行实践. 调用C程序之后他是怎么知道来调用我们我们的哪个方法?又是如何 ...

  7. java 固定值_这些频繁调用函数是否可以在dblquad中返回固定值?

    该脚本使用SciPy的dblquad计算来自均匀充电环的(x0,y0,z0)处的电场 . 我的问题是关于 gfun 和 hfun 的使用,它定义了内积分限制对外积分变量的函数依赖性 . 如果我选择整合 ...

  8. python未定义_未定义Python函数

    当我运行服务器(FLASK app)时,遇到一个函数未定义的错误: 名称错误:未定义名称"format_date" 这是我目前为止的所有代码:from flask import F ...

  9. java 未定义_未定义,未指定和实现定义的行为

    Undefined behavior 是C和C语言的一个方面,对于来自其他语言的程序员来说可能会令人惊讶(其他语言试图更好地隐藏它) . 基本上,即使许多C编译器不会报告程序中的任何错误,也可以编写不 ...

最新文章

  1. 水晶报表设置FiledObject支持HTML格式的数据
  2. pycharm和python区别-python与pycharm有何区别
  3. php图片传入及改名代码,WordPress添加媒体中文名图片上传改名(优化版)
  4. 芭比扣了!Nacos中服务删除不了,肿么办?
  5. 【操作系统】进程与线程
  6. mac php csv 乱码,php 生成csv mac下乱码
  7. 学习Unix其实就这样简单
  8. R语言︱文本挖掘套餐包之——XML+SnowballC+tm包
  9. Server的Transfer和Response的Redirect
  10. 国科大学习资料--自然语言处理(宗成庆)-2019期末考试题
  11. 草图大师SketchUp2016下载和安装教程
  12. Three.js编辑器editor使用详解
  13. Python-支持向量机 决策边界 最大化margin、使用多项式特征和核函数、高斯核函数、超参数 γ、SVM解决回归问题
  14. Python——组合数据类型(字符串、元组、列表、字典)转换总结
  15. 腾讯云通信音视频通话最小化悬浮小窗
  16. 看不见世界的程序员,开发了一款“吃鸡”
  17. d3d透视逆向篇:第4课 方法一之D3D9游戏黑屏优化1 HOOK
  18. 访客一体机六大鸡肋功能
  19. 【OMNET+Veins+SUMO】【视频】车联网仿真框架搭建指南
  20. 简单的网易云音乐热门评论爬虫

热门文章

  1. ios 隐藏UIScrollView的滚动条
  2. php+python+java+c+html5+css3等各类IT视频教程合集500T
  3. 编译器大神 Chris Lattner 官宣新编程语言:Mojo,比 Python 快 35000 倍!
  4. Assembly.Get***Assembly的区别
  5. OpenCV 车辆检测/人脸识别+图像拼接+文字识别
  6. LabVIEW编程LabVIEW开发雷尼绍光栅尺Renishaw DX10表例程与相关资料
  7. 电子教室系统软件有哪些教学功能,我做了以下分类
  8. c语言建立坐标的代码,C语言 getx()用法及代码示例
  9. 网络优化-HttpDns
  10. 2022年高教社杯国赛赛题浅评