文章分类 -  C语言规范

摘要:uint8_t bcd_to_dec(uint8_t ui8BCDByte) { return (((ui8BCDByte & 0xF0) >> 4) * 10) + (ui8BCDByte & 0x0F); } uint8_t dec_to_bcd(uint8_t ui8DecimalByte) 阅读全文
posted @ 2021-12-13 10:33 咸菜白饭 阅读(132) 评论(0) 推荐(0)
摘要:# #号 作为一个预处理运算符 ,可以把记号转换成字符串。 比如 defined ADD(X,Y) printf(#X" + "#Y " = %d", ((X) + (Y))) ADD(5,8) 会显示:5 + 8 = 13 如果传入的是变量名,那就会直接打印变量名 ##运算符可以把两个记号组合成一 阅读全文
posted @ 2021-08-12 20:12 咸菜白饭 阅读(7) 评论(0) 推荐(0)
摘要:/* assert for developer. */#define CMB_ASSERT(EXPR) \if (!(EXPR)) \{ \ cmb_println("(%s) has assert failed at %s.", #EXPR, __FUNCTION__); \ while (1); 阅读全文
posted @ 2021-08-12 17:32 咸菜白饭 阅读(10) 评论(0) 推荐(0)
摘要:1、由于在赋值符“=”右边的表达式也可以又是一个赋值表达式, 因此,下述形式 变量=(变量=表达式); 是成立的,从而形成 嵌套的情形。 其展开之后的一般形式为:变量=变量=…=表达式; 例如: a=b=c=d=e=5; 按照赋值运算符的右接合性,因此实际上等效于: e=5; d=e; c=d; b 阅读全文
posted @ 2021-04-01 10:13 咸菜白饭 阅读(133) 评论(0) 推荐(0)
摘要:static uint8_t findBattPercent(const uint16_t *table, uint16_t len, uint16_t voltage) { int left = 0, right = len - 1, mid = 0; if(voltage < table[lef 阅读全文
posted @ 2021-03-01 15:41 咸菜白饭 阅读(5) 评论(0) 推荐(0)
摘要:/******************************************* 说明: 二分查找法的优点:查找速度快 1024个长度的表最长只需10次查表就能得出结果 在用NTC测试温度的方案中,NTC的温度表的长度一般是100-200 有些达到400-500的长度 在这种情况下如果用逐个 阅读全文
posted @ 2020-08-24 14:33 咸菜白饭 阅读(8) 评论(0) 推荐(0)
摘要:1、结构体对齐方式 一般地,可以通过下面的方法来改变缺省的对界条件:使用伪指令#pragma pack (n),C编译器将按照n个字节对齐。使用伪指令#pragma pack (),取消自定义字节对齐方式。 阅读全文
posted @ 2020-07-22 14:17 咸菜白饭 阅读(6) 评论(0) 推荐(0)