×

常用的lcd断码屏驱动芯片:HT1621 三线spi串口驱动...

利用stm8l152自带的lcd驱动,驱动一个14SEG,4个Com的段码屏这次需要驱动的段码屏是联想体重秤的段码屏,由于这样的屏大多是定制的,所以需要自己在能够驱动在屏幕上显示一个任何的东西,即表示能够被驱动起来(不知道它对应的引脚是不是正确的(和自己想的))段码屏可以显示汉字...

期待你的精彩评论 加入710人围观
C ---------- 使用#define定义一个带参数的宏,注意事项

C语言学习

C ---------- 使用#define定义一个带参数的宏,注意事项

zxjy辉 zxjy辉 发表于2023-12-11 浏览1773 评论0

应避免使用使用宏定义 带参数的表达式,因为会导致多次求值,导致结果和预期不符


例如 #define max(a,b)  (a)>(b)?a:b

上述的这个宏定义带参表达式,在使用带有++,--方式时,就会导致重复求值,该表达式,一共进行两次求值,一次是在判断 a是否大于b,另一次则是,输出max(a,b)结果的时候

举个例子

C语言学习

C ---------- #define 与 typedef 的区别

zxjy辉 zxjy辉 发表于2023-12-11 浏览1507 评论0

区别还是挺大的,要注意辨别,尤其是在多个变量的时候


都可以用来定义一个别名,

#define otherName  Name

typedef Name otherName;

区别在于,多个变量定义的时候,尤其在定义指针的时候

#define D_otherName Name*

typedef Name*  T_otherName;

例如:

D_otherName a,b;    这个扩展为: Name *a,b; 在这里 a变量表示指针,而b变量则不是指针