【002:带参宏调试】

用于无法在线调试情况下的打印输出辅助(如单片机 ESP8266等调试)

#define DE_OUT(format, ...) os_printf("\r\n File: %s Line: %d "format" ",__FILE__,__LINE__,##__VA_ARGS__)

其中,os_printf() 为  ESP8266的打印函数

使用时,DE_OUT("Hello World");

输出信息:   换行 File:文件名   Line:行号  Hello World

时间: 2024-12-19 08:26:29

【002:带参宏调试】的相关文章

带参宏定义和inline修饰的内联函数

带参宏定义和inline修饰的内联函数都是在编译时,用函数体替换掉宏调用或函数调用.这样用的好处是减少调用函数所花费的时间. 例如: 算法导论在讲到堆排序时说的,好的堆排序实现一般是把Left(i),Right(i),Parent(i)的实现通过宏定义或内联函数来实现,这就是因为当我们对一组数据使用堆排序时,会大量的调用left,right,parent函数定义成宏或内敛函数之后既不影响我们的代码阅读性又能是代码运行速度更快!

带参宏定义的思考

带有参数的宏定义: 宏定义是一种替换,所以返回的通常是带有运算符表达式.不能返回语句. 通常用的一些运算符:三目运算符(代替if语句)...&&...|| 特殊建议:为了保证准确性,在()中放入变量 下面是一些宏定义的例子/ 1,判断字符是不是10进 值的数字 #define  DECCHK( c ) ((c) >= '0'&& (c) <='9') 2,判断字符是不是16进 值的数字 #define  HEXCHK( c ) ( ((c) >= '0'&

预处理-01-无参宏定义

在之前,已多次使用过以"#"号开头的预处理命令. 如包含命令#include <stdio.h>,宏定义命令#define PI 3.1415926等. 在源程序中这些命令都放在函数之外,而且一般都放在源文件的前面,它们称为预处理部分. 1.无参宏定义 无参宏的宏名后不带参数.其定义的一般形式为: #define  标识符  字符串 其中的"#"表示这是一条预处理命令.凡是以"#"开头的均为预处理命令.define 为宏定义命令.&q

Android--Intent组件带参传递与返回

Android 是 单例模式: 表示 application 唯一的.每个应用被启动的时候,其实是 application 被创建. Context 上下文: context 是 Application 和 activity 的父类.很多方法中,传递的都是上下文,而不是具体的 Activity 或者 Application. AndroidManifest.xml : 每一个 activity 都必须在 AndroidManifest.xml 中配置.否则出现 ActivityNotFound

thymeleaf的初次使用(带参请求以及调用带参js方法)

之前对于前端框架接触较少,第一次接触thymeleaf,虽说看起来并不复杂但我还是花费了好一会儿才弄懂. 话不多少下面就简单说一下我在项目中的应用. 首先是java代码 controller层 将需要在前端展示的信息放入model中: @RequestMapping("getAll") public String getAll(Model model){ List<ScheduleJob> list = scheduleJobService.getAllJob(); mod

类的带参方法

定义带参方法的语法 访问修饰符 返回值类型 方法名(参数列表){ 方法的主体 } 访问修饰符指该方法允许被访问的权限范围 返回值类型指方法返回值的类型 方法名是定义的方法的名字,它必须使用合法的标识符 参数列表是传送给方法的参数列表 调用带参方法的语法 对象名.方法名(参数); 在定义方法和调用方法时,把参数分别称为形式参数和实际参数,简称形参和实参 形参是在定义方法的时候对参数的称呼,目的是定义方法需要传入的参数个数和类型 实参是在调用方法时传递给方法处理的实际的值 调用方法时,需要注意一下两

Java 中带参无返回值方法的使用

现实生活中电饭锅可以实现“煮饭”的功能,但前提是我们必须提供食材.如果我们什么都不提供,那就真是的“巧妇难为无米之炊”了. Java带参就是解决这类问题的方法. 例如:为了解决计算两门科目平均分的计算问题,就可以定义一个带参的方法,通过调用方法,传入两门课程的成绩 一定不可忽视的问题: 1. 调用带参方法时,必须保证实参的数量.类型.顺序与形参一一对应 2. 调用方法时,实参不需要指定数据类型 3. 方法的参数可以是基本数据类型,如 int.double 等,也可以是引用数据类型,如 Strin

Java 中带参带返回值方法的使用

如果方法既包含参数,又带有返回值,称为带参带返回值的方法. 例: 实现功能:将考试成绩排序并输出,返回成绩的个数 实现思路: 1. 定义一个包含整型数组参数的方法,用来传入成绩数组 2. 在方法体中使用 Arrays.sort( ) 方法对成绩数组进行排序,然后使用 Arrays.toString( ) 方法将数组转换为字符串并输出,最后使用 return 返回数组中元素的个数. 3. 调用方法时需要先创建对象,然后再调用.调用时为其传入成绩数组,并获取方法的返回值,保存在变量中,最后输出成绩的

Apache Commons Digester 二(规则模块绑定-RulesModule、异步解析-asyncParse、xml变量Substitutor、带参构造方法)

前言 上一篇对Digester做了基本介绍,也已经了解了Digester的基本使用方法,接下来将继续学习其相关特性,本篇主要涉及以下几个内容: 规则模块绑定,通过定义一个RulesModule接口实现类来完成规则的预先绑定,运行时重复使用 异步解析xml 解析xml中的变量,如${sys.user} 使用带参数的构造方法创建对象,参数来自xml节点数据 规则模块预先绑定 - RulesModule接口 在此之前,我们使用Digester的基本流程都是每次在程序运行时绑定规则,然后解析: 事实上,