索引: bit.h delay.h pin.h wave.h pwm.h led.h rgbw.h button.h switch.h 主要更新: 用枚举类型替换了大部分宏定义; 添加了wave.h、pwm.h、switch.h的文档。 头文件与静态库文件下载:release。 1. bit.h < ...
分类:
其他好文 时间:
2019-09-16 00:12:33
阅读次数:
121
一、前言 在后台程序运行出问题时,需要查看详尽的日志,C语言提供记录日志触发点文件名、行号、函数名的方法,关键是利用C99新增的预处理标识符__VA_ARGS__;先介绍几个编译器内置的宏定义,这些宏定义不仅可以帮助我们完成跨平台的源码编写,灵活使用也可以巧妙地帮我们输出非常有用的调试信息。 二、A ...
分类:
编程语言 时间:
2019-09-14 16:21:46
阅读次数:
214
有时候我们想优化一些语句,例如: 你会发现,这个 不是会每次循环中浪费一次运算的时间吗? 那么针对这个问题我们可以通过宏定义或者静态常数处理,宏定义不用说大家都直接,直接把运算常数结果定义出来就可以了,但是带来的问题不仅是破坏了原有代码的拓展性和可读性,还带来了调试终止条件困难的结果,如果不是高级的 ...
分类:
其他好文 时间:
2019-09-13 17:10:26
阅读次数:
120
C++提供的编译预处理功能主要有以下三种: + 宏定义 + 文件包含 + 条件编译 预编译又称为预处理 , 是做些代码文本的替换工作。处理 开头的指令 , 比如拷贝 包含的文件代码, 宏定义的替换 , 条件编译等,就是为编译做的预备工作的阶段,主要处理 开始的预编译指令,预编译指令指示了在程序正式编 ...
分类:
编程语言 时间:
2019-09-12 23:38:34
阅读次数:
127
正则表达式 以前我们用grep在一个文件中找出包含某些字符串的行,比如在头文件中找出一个宏定义。其实grep还可以找出符合某个模式(Pattern)的一类字符串。例如找出所有符合xxxxx@xxxx.xxx模式的字符串(也就是email地址),要求x字符可以是字母、数字、下划线、小数点或减号,ema ...
分类:
其他好文 时间:
2019-09-08 21:52:09
阅读次数:
81
include include define MAX(a, b) (a) (b) ? printf("a b") : printf("a ...
分类:
其他好文 时间:
2019-09-05 21:43:39
阅读次数:
235
这两个宏表示这个类的消息映射开始和结束,中间的宏定义定义了此类的所有的消息映射。前面的afx_msg void OnPaint();只是声明OnPaint()函数的一个消息处理函数,然后是OnPaint()函数的定义,但是函数定义在那儿是不会自己去执行的,ON_WN_PAINT()宏是一个系统消息映 ...
分类:
其他好文 时间:
2019-09-04 11:35:13
阅读次数:
114
如果你想定义这个宏那就#define X 如果你不想让你已经#define X的宏在其他地方由于引入这个包含宏定义的.h文件而引起一些编译问题,那你就#undef X掉,就这么简单。 举个简单的例子: 有1.c,11.h,12.h三个文件,其中在11.h中定义了#define X extern x ...
分类:
其他好文 时间:
2019-09-03 17:01:49
阅读次数:
221
#ifdef _WIN32 # define sleep(x) Sleep((x)*1000) #endif 直接影响了后面这个函数,导致参数类型不匹配! ...... boost::this_thread::sleep (boost::posix_time::seconds (1)); ..... ...
分类:
其他好文 时间:
2019-09-01 21:49:40
阅读次数:
91
总之遇到一大堆杂七杂八的问题 要完成转换 1、选好芯片 2、因为MCU的不同,芯片容量不同,一些芯片的寄存器映射的地址会发生改变,摘抄了一个写得很好的文章https://blog.csdn.net/liuhan211211/article/details/52723408 由于STM32F103系列 ...
分类:
其他好文 时间:
2019-08-26 18:03:59
阅读次数:
191