
C/C++
文章平均质量分 61
C/C++
iot 小胡
嵌入式软件工程师
擅长领域 : 智能家居、STM32、CubeMX、RT-Thread、通信
展开
-
typedef用法
typedef 可以给类型取一个新名字给普通类型取别名如:typedef unsigned char uint8_t;typedef unsigned short uint16_t;typedef unsigned int uint32_t;给结构体取别名如:typedef struct people { int age; int sex; char name[20];} people_t;------- 或 -------typedef struct {原创 2022-02-15 20:00:00 · 504 阅读 · 0 评论 -
可复用链表list.h
这种用法惊艳到我了!!!传统的教科书式的链表有个非常大的缺点: 一句话讲就是 复用性差每种类型的链表我们都需要编写不同的函数去实现增删改查等基本操作不仅效率低, 而且还容易出错而 linux内核 的 list.h 就是为了解决这一痛点而诞生的我们只需要添加基本的成员, 然后对 list.h 中的函数简单封装一下, 就能够实现想要的功能了须知我们使用的 list 是一种特殊双向环形链表,双向环形链表 大家可能比较好理解, 那么特...原创 2021-12-02 13:17:15 · 1032 阅读 · 2 评论 -
googletest 和 googlemock 的环境搭建
在很久以前, googletest ( 后面简称 gtest ) 和 googlemock ( 后面简称 gmock ) 仓库还没有合并, 他们分别对应 Github 的不同仓库, 不过现在他们都合并到了 gtest 仓库 gtest 的 Github 仓库现在我来教大家如何搭建 gtest 和 gmock 的环境下载 gtest 源码执行以下命令下载 gtest 的源码 ( 我使用 release-1.10.0 版本 )git clone --branch release-1.10.0原创 2021-02-03 23:36:49 · 1076 阅读 · 0 评论 -
const 笔记
简介“const” 是constant的缩写, 表示"海枯石烂, 恒定不变, 一旦相伴, 永不变心".how to 理解将类型去掉看 const 修饰谁, 谁就拥有了不变的特性.举例const int a = 10;去掉 int, 变成了 const a = 10, a的值不变.int const a = 10;去掉 int, 变成了 const a = 10, a的值不变.const int a[10] = {1,2,3,4,5,6,7,8,9,10};去掉 int,原创 2021-01-27 22:20:33 · 192 阅读 · 0 评论 -
计算一个 unsigned int 中 “1“ 的个数
前段时间看到一个神奇的算法, 计算 unsigned int 类型中 1 的个数这个算法的厉害之处在于它的运行效率特别高, 下面是代码以及我做的笔记, 大家来讨论讨论.代码int count_bits(unsigned int a){ unsigned int x = a; x = x - ((x >> 1) & 0x55555555); ///< 1: ->相邻2位 "1" 的个数和 x = .原创 2021-01-27 22:07:12 · 333 阅读 · 0 评论 -
#和##的用法
简介C语言中经常用到 # 和 ##, 很多初学者不知道他们什么什么意思, 这儿我简单科普一下.#的用法当做 replacement-text令牌, 转换为引号引起来的字符串...#define TO_STR(x) #xint main(){ int value = 123; printf("TO_STR(value) = %s\n", TO_STR(value)); printf("TO_STR(123) = %s\n", TO_STR(value));}原创 2020-12-12 21:42:43 · 101402 阅读 · 9 评论 -
预处理指令 #define 的用法
在C/C++编程中, 进场会用到 #define 关键字, 但是在学习C/C++基础知识的时候老师一般很少会深入讲解它的所有功能, 一般是用的时候再去了解, 这人我总结了一下常见的用法, 如有遗漏欢迎指出.下面通过简单的说明几个例子说明这几个的用法修饰常亮...#define PI 3.14#define COUNTRY "CHINA"#define SECOND_PER_YEAR (60 * 60 * 365)int main(){ printf("PI = %f\n",原创 2020-11-22 23:54:17 · 836 阅读 · 0 评论 -
条件编译指令 #define #undef #ifdef #ifndef #endif
话不多说, 下面通过简单的说明几个例子说明这几个的用法定义与取消定义定义AAA为111#define AAA 111定义AAA, 但没定义AAA的值#define AAA取消定义AAA, 之前定义的AAA无效#undef AAA选择性定义如果定义了AAA, 那么就定义ZZZ为222#ifdef AAA #define ZZZ 222#endif如果没有定义AAA, 那么就定义ZZZ为222#ifndef AAA #define ZZ.原创 2020-11-17 23:42:14 · 1177 阅读 · 0 评论 -
一个例子告诉你指针有多危险
一个例子告诉你指针有多危险代码#include <stdio.h>int main(){ struct st { int a; int b; }; struct st st1; st1.a=1; st1.b=4; int *pa=&(st1.a); printf("a=%d,b=%d\n",st1.a,st1.b); pa[1]=77; pr...原创 2019-04-28 10:23:50 · 804 阅读 · 3 评论 -
嵌入式编程技巧之------共用体union
嵌入式编程技巧之------共用体unionunion简介共用体是一种特殊的数据类型,为了使用共用体,就必须使用union语句,简单的语法相关知识这里这里做详细解释,请大家点击参考➢菜鸟教程union和struct一起使用struct是结构体代名词,union是共用体的代名词,将这两者联合在一起使用有时候会减少很多工作量。应用1------串口通信下面进行定义/*定义结构体*/ty...原创 2018-10-22 14:08:52 · 964 阅读 · 0 评论