C
none
优美小调
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
兼容C和C++的写法
兼容C与C++#ifndef __XX_H#define __XX_H #ifdef __cplusplus extern "C"{ #endif //代码块 #ifdef __cplusplus } #endif#endif原创 2020-10-13 20:49:40 · 323 阅读 · 0 评论 -
宏定义变量
LINE :当前程序行的行号,表示为十进制整型常量(这里应该注意应该用强制转换进行转换,C51用%d直接输出可能出错)FILE :当前源文件名,表示字符串型常量DATE :转换的日历日期,表示为Mmm dd yyyy 形式的字符串常量,Mmm是由asctime产生的。TIME :转换的时间,表示"hh:mm:ss"形式的字符串型常量,是有asctime产生的。(asctime貌似是指的一个函数)STDC :ANSI C进行编译STDC_VERSION :如何实现复合C89整部1,则.原创 2020-10-13 17:11:31 · 3844 阅读 · 0 评论 -
宏定义 # ## 的使用方法
#define log(x) #a将宏参数转化为字符串prinf(log(111))==>结果为111#define temp(x) temp_##a将##前后的标记进行合并int temp(1);==>这个变量的名字为temp_1宏定义的串口的DEBUG的使用C99模式C99模式--方法一:#ifdef DEBUG_ON #define DEBUG(fmt,args...) printf("%s==>%s(%d) : "#fmt"\r\n",__TIME_原创 2020-10-13 16:38:47 · 288 阅读 · 0 评论 -
宏定义超过字长的一些问题
#define T12_MODEvoid UART1_init(){#ifdef T12_MODE #define bundRate(bundRate) (65536 - 12000000UL/(12*4*bundRate#UL)) // 12T模式会有误差 AUXR &= ~(1<<6);//12T模式#else #define bundRate(bundRate) (65536 - 12000000UL/(4*bundRate#UL)) // 1T模式没有误差原创 2020-10-13 15:54:13 · 678 阅读 · 0 评论 -
关于struct的初始化 error 的问题C242: ‘struct‘: too many initializers
没有加{ }进行初始化typedef struct{ uchar led_enable[9]; uchar led_State[8]; struct{ uchar pwm_flags; uint pwm_flags_count; uchar pwm_count; uchar led_Cmp_Buff[8]; uchar led_PWM_enable[9]; }led_pwm_struct;}led_def;led_def led_struct = { {0原创 2020-10-13 13:42:51 · 6671 阅读 · 0 评论 -
关于printf的值与实际的值不一样的解决办法
注意pritnf中%的类型不匹配的话将会造成打印错误总结好久没有用printf打印东西了,都忘了unsigned char 和 char应该用%c,而unsigned int 和 int 可以用%u或者%d,当然可以用%ul等等,这也算是一个小坑了吧...原创 2020-10-13 12:28:58 · 1373 阅读 · 0 评论 -
KEIL、MDK中关于__LINE__宏 printf 的显示不正确的问题
> #define DEBUG(log) printf("%s==>%s(%d) : %s\r\n",__TIME__,__FILE__,(uint)__LINE__,log)对其的调用如下可以发现串口printf打印的__LINE__的值并不正确而将其赋给一个变量值时却正确,这个算是BUG吗?解决办法在__LINE__前面加上强制转换类型(unsiged int)就可以避免printf出错不管了,先这样用着吧结果...原创 2020-10-13 03:09:21 · 1367 阅读 · 0 评论
分享