嵌入式职场
在Matlab、Python、C/C++和Go等多种编程语言方面都有丰富的经验,专注于智能优化算法、工业人机交互界面设计、物联网、服务端开发等众多领域。
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
【C语言】14:ec:6a:50:7b:58 字符串拆分并存入 uint8_t arr[6] 中
可以使用sscanf()函数来解析这些 16 进制数字并存入数组。原创 2024-11-15 15:27:24 · 139 阅读 · 0 评论 -
【C语言】处理可变数量的参数函数
stdarg.h>是C语言中的一个头文件,它提供了一种方式来处理可变数量的参数函数。通过使用头文件中提供的宏和函数,我们可以编写能够接受不定数量参数的函数。在va_list:该宏定义一个类型为va_list的对象,用于保存在函数中处理可变数量参数时所需的信息。va_start:该宏用于初始化va_list对象,以便在函数中遍历可变数量参数。va_arg:该宏用于从va_list对象中获取下一个可变数量参数的值,并将指针移动到下一个参数。va_end:该宏用于清理。原创 2024-06-18 09:25:07 · 109 阅读 · 0 评论 -
【C语言】利用 <limits.h> 中的常量了解不同整数类型的范围
在C语言中,头文件定义了一些常量,用于表示不同整数类型的取值范围。这些常量可以帮助我们了解各种整数类型在特定实现中的最大值和最小值。下面我们将编写一个示例程序来演示如何使用这些常量。原创 2024-06-18 09:24:10 · 172 阅读 · 0 评论 -
【C语言】利用 <limits.h> 中的常量了解不同整数类型的范围
在C语言中,头文件定义了一些常量,用于表示不同整数类型的取值范围。这些常量可以帮助我们了解各种整数类型在特定实现中的最大值和最小值。下面我们将编写一个示例程序来演示如何使用这些常量。原创 2024-06-18 09:17:22 · 123 阅读 · 0 评论 -
【C语言】如何使用 <ctype.h> 头文件中的函数进行字符类型判断和转换
下面我将详细解释如何使用头文件中的函数进行字符类型判断和转换。我们将编写一个示例程序,展示如何使用这些函数。原创 2024-06-18 09:08:23 · 122 阅读 · 0 评论 -
【C语言】《assert.h》头文件的功能和使用方法
assert.h>头文件是C语言标准库中的一个头文件,主要用于提供断言(assertion)相关的功能。断言是一种在程序中用于检查特定条件是否满足的机制,通常用于调试和测试阶段,有助于发现代码中的逻辑错误和异常情况。原创 2024-06-18 08:57:47 · 263 阅读 · 0 评论 -
【C语言】探索和理解《errno.h》头文件的功能和使用方法
通过使用,开发者可以更好地处理和诊断运行时错误,提高程序的健壮性和可靠性。在实际应用中,建议在每次可能产生错误的函数调用之后检查errno,并根据需要输出错误信息或采取相应的恢复措施。原创 2024-06-18 08:56:31 · 111 阅读 · 0 评论 -
【C语言】将串口协议的十六进制字符串转成10进制
用于将串口协议的十六进制字符串转成10进制测距数据。原创 2024-05-07 17:34:47 · 440 阅读 · 0 评论 -
【C语言】(aka ‘unsigned long‘) (fix available)change ‘%lld‘ to ‘%lu‘
方法1:更改变量类型为。原创 2024-01-25 14:34:16 · 369 阅读 · 0 评论 -
【C语言】%lld in format string (no. 1) requires ‘long long‘ but the argument type is ‘signed long‘.
【代码】【C语言】%lld in format string (no. 1) requires 'long long' but the argument type is 'signed long'.原创 2024-01-25 14:31:44 · 627 阅读 · 0 评论 -
【C语言】演示了如何在函数中使用void *指针处理不同类型的数据
指针没有类型信息,因此在使用指针指向的数据之前,必须将其转换为正确的指针类型,这个过程称为“类型强制转换”。例如,如果需要在一个函数中处理不同类型的数据,可以声明函数参数为。指针转换为其他类型指针时,必须确保指向的内存区域实际包含了正确类型的数据,否则会导致运行时错误。则是一个通用指针类型,可以指向任何类型的数据,因为它不包含任何关于指向的对象类型的信息。参数的值将指针转换为正确的类型,并打印出数据的值。在主函数中,我们分别使用。类型,然后在函数内部根据需要将指针类型转换为正确的类型。原创 2023-12-29 14:01:44 · 548 阅读 · 0 评论 -
【C语言】求取char类型数组的长度
函数,并将字符串传递给该函数作为参数,获取字符串的长度。头文件中,它用于计算字符串的长度,直到遇到字符串末尾的空字符。在C语言中,可以使用标准库函数。的长度,即字符串中字符的个数。以下是一个示例演示如何使用。上述代码中,我们声明了一个。函数打印出字符串的长度。原创 2023-12-29 10:42:37 · 2401 阅读 · 0 评论 -
【C语言】怎么给char类型的数组赋值?
都需要确保目标数组有足够的空间来存储要赋值的字符串。在上述示例中,我们声明了一个大小为20的。在这个示例中,我们首先将字符串常量"Hello, World!"的地址存储在一个指针变量。如果要赋值的字符串长度超过了数组的大小,可能会导致内存溢出错误。函数将字符串常量"Hello, World!类型的数组赋值,可以使用字符串拷贝函数。函数还是字符串赋值运算符。另外,不要忘记包含头文件。或者字符串赋值运算符。原创 2023-12-29 10:34:58 · 2235 阅读 · 0 评论 -
【C语言】详解C语言中的typedef
上述代码将unsigned int类型定义为uint,将float类型定义为real。这样,在后续的代码中就可以使用uint和real作为原类型的替代。return 0;int age;} Person;上述代码将一个匿名的结构体定义为Person,这个结构体包含age和name两个成员变量。通过typedef,我们可以使用Person作为这个结构体的别名,方便后续对该结构体的使用。int age;} Person;int main()原创 2023-12-29 10:09:08 · 384 阅读 · 0 评论 -
【C语言】把uint32_t每个字节存到4个uint8_t变量中
在C语言中,可以使用位操作和移位运算符来将。类型的每个字节存储到。原创 2023-12-29 09:45:07 · 894 阅读 · 0 评论 -
【C语言】sscanf解析复杂的字符串
是 C 语言中的标准库函数,用于按照指定格式从字符串中读取数据。还有很多其他的应用场景,比如解析更复杂的字符串,处理不同类型的数据等。表示可以有一个或多个参数,这些参数将会按照。中解析出名字和年龄,并将它们存储到变量。以空格分隔的方式分别读取字符串和整数。是格式控制字符串,它告诉。是要解析的输入字符串,在这个示例中,我们使用。原创 2023-12-20 09:50:05 · 600 阅读 · 0 评论 -
【C语言】详解uint16_t类型变量取高8位与低8位
由于uint8_t类型只能存储8位的值,直接将uint16_t类型的变量x赋值给uint8_t类型的变量low_byte,编译器会自动帮你截断高八位,得到低八位的值。需要注意的是,无论使用哪种方式提取高八位的值,最终得到的结果都是一个uint8_t类型的变量,范围在0~255之间。将x与0xFF进行按位与操作,这样可以保留x的低八位,然后将结果强制转换成uint8_t类型,最终得到低八位的值。将x向右移动8位,即将低八位舍去,保留高八位,并将结果强制转换成uint8_t类型,最终得到高八位的值。原创 2023-12-06 11:57:25 · 1648 阅读 · 1 评论 -
【C语言】定义多个结构体且每个结构体成员变量相同,演练教程互相转换
return 0;原创 2023-11-16 10:10:14 · 521 阅读 · 0 评论 -
【C语言】详解剖析位操作的使用
是有符号数(负数),则左侧补符号位(即,补上符号位的副本)。右移操作等价于除以2的幂。在C语言中,左移和右移是位运算操作符,用于对二进制表示的整数进行位移操作。的二进制表示向右移动指定的位数。最后,我们打印出左移和右移后的结果。左移操作等价于乘以2的幂。进行左移和右移操作,并输出结果。的二进制表示向左移动指定的位数,右移将。是无符号数,则左侧补零;在上述代码中,我们使用了。的二进制表示向左移动。的二进制表示向右移动。原创 2023-10-17 15:33:08 · 118 阅读 · 0 评论 -
【C语言】解决 warning: implicit declaration of function ‘exit‘
【C语言】解决 warning: implicit declaration of function 'exit'原创 2023-03-15 22:28:17 · 1747 阅读 · 1 评论 -
【C语言】把一个结构体指针转换为另一个结构体指针
可以把结构体Peo的指针转换为 Stu 类型的指针。原创 2022-11-23 10:17:12 · 1123 阅读 · 0 评论 -
【C语言】详解 malloc 、calloc函数的区别
Size: 分配内存的大小。malloc 申请内存地址,申请成功返回首地址。当malloc申请的内存空间不在使用时,可以通过free函数进行空间的释放,下面来看一下free函数的用法。【C语言】内存申请与释放 malloc、free 函数讲解_嵌入式职场的博客-优快云博客。【C语言】详解 calloc 函数用法_嵌入式职场的博客-优快云博客。_nmemb:申请空间个数。__size:申请空间的大小。原创 2022-11-19 09:56:23 · 358 阅读 · 0 评论 -
【C语言】详解 calloc 函数用法
_nmemb:申请空间个数。__size:申请空间的大小。、原创 2022-11-19 09:47:11 · 1305 阅读 · 0 评论 -
【gdb调试】通过具体程序代码了解gdb调试命令
UNIX及UNIX-like下的调试工具。或许,各位比较喜欢那种图形界面方式的,像VC、BCB等IDE的调试,但如果你是在 UNIX平台下做软件,你会发现GDB这个调试工具相比于VC、z的优点是具有修复网络断点以及恢复链接等功能,比BCB的图形化调试器有更强大的功能。所谓“尺有所短,寸有所长”就是这个道理。原创 2022-11-18 20:23:58 · 148 阅读 · 0 评论 -
【C语言】内存申请与释放 malloc、free 函数讲解
Size: 分配内存的大小。以字节为单位。malloc 申请内存地址,申请成功返回首地址。当malloc申请的内存空间不在使用时,可以通过free函数进行空间的释放,下面来看一下free函数的用法。原创 2022-10-18 11:47:49 · 674 阅读 · 0 评论 -
【C语言】详解联合体 union
在同一块内存中,存放不同类型的数据变量。原创 2022-10-17 17:12:56 · 301 阅读 · 0 评论 -
【C语言】字符数组初始化方法
在C语言中使用数组来模拟字符串。在C语言中字符串是以'\0' 结尾的数组。在C语言中字符串可以分配栈空间、堆空间。原创 2022-09-19 20:43:46 · 2400 阅读 · 0 评论 -
【C语言】结构体变量数据通过 void* 传入到函数中
代码】【C语言】结构体变量数据通过 void* 传入到函数中。原创 2022-08-04 11:33:07 · 1470 阅读 · 0 评论 -
【C语言】结构体指针与结构体变量作形参的区别
总结结构体变量作为形参传递到函数中,不改变实参的值。原创 2022-07-28 11:37:36 · 756 阅读 · 0 评论 -
【C语言】(指针强化)详解间接赋值(*p)的应用
两码事指针变量和它指向的内存块变量。条件反射指针指向某个变量,就是把某个变量地址否给指针。2个变量(通常一个实参,一个形参)。建立关系,实参取地址赋给形参指针。*p形参去间接修改实参的值。...原创 2022-07-16 17:25:59 · 587 阅读 · 0 评论 -
【C语言】(指针强化)指针也是一种数据类型
给*p赋值*p='a';不会改变指针变量的值,只会改变所指的内存块的值。只会改变指针变量值,不会改变所指的内容。*p相当于通过地址(p变量的值)找到一块内存;改变了指针指向的地址值,故指针变量值改变,而*p的值不变。在指针使用时,*号表示操作指针所指向的内存空间中的值。指针步长(p++),根据所致内存空间的数据类型来确定。不断的给指针变量赋值,就是不断的改变指针变量。在指针声明时,*号表示所声明的变量为指针。建立指针指向谁,就把把谁的地址赋值给指针。*p放在等号的左边赋值(给内存赋值)。...原创 2022-07-16 16:59:08 · 363 阅读 · 0 评论 -
【C语言】使用 C 语言实现串口收发数据(最详细教程,看一篇包会)
打开串口工具和串口虚拟工具。到这里就测试完成啦!原创 2022-07-16 15:10:58 · 3620 阅读 · 1 评论 -
【C语言】详解接口传入参数与传出参数
a、b 为传入参数,c 为传出参数2、代码实例原创 2022-07-13 11:05:16 · 2808 阅读 · 0 评论 -
【C语言】解决 “error: function definition is not allowed here”
目录1、遇到问题2、问题解决 错误:此处不允许函数定义。检查函数定义的范围 ,在一个函数内部不允许再定义函数。原创 2022-07-07 15:55:28 · 16515 阅读 · 1 评论 -
【C语言】详解 memset() 函数用法
解释:复制字符 _Val(一个无符号字符)到参数 _Dst 所指向的字符串的前 _Size 个字符。memset 函数为初始化函数,可以把一段连续的内存初始化某个值。作用:是在一段内存块中填充某个给定的值,它是对较大的结构体或数组进行清零操作的一种最快方法。头文件:#include 注意:memset 函数是按字节进行赋值的。对较大的结构体或数组进行清零操作对结构体参数置 0:如果使用 memset 函数进行内存地址赋值为 1 时,能得出想要的结果吗?下面来验证一下:发现结果...原创 2022-07-01 10:23:27 · 3876 阅读 · 0 评论 -
【C语言】详解线程 — 线程分离函数 pthread_detach
参数就是线程 ID ,这样主线程和子线程就分离了。在某些情况下,程序中的主线程有属于自己的业务处理流程,如果让主线程负责子线程的资源回收,调用 只要子线程不退出主线程就会一直被阻塞,主要线程的任务也就不能被执行了。在线程库函数中为我们提供了线程分离函数 ,调用这个函数之后指定的子线程就可以和主线程分离,当子线程退出的时候,其占用的内核资源就被系统的其他进程接管并回收了。线程分离之后在主线程中使用 就回收不到子线程资源了。...原创 2022-06-30 08:24:59 · 1672 阅读 · 0 评论 -
【C语言】详解线程 — 通过 “加锁” 解决并发程序引起的共享内存问题
两个子线程同时操作同一个函数。正常情况下,sum 的值应该为 200000,但是发现运行的结果有误差,如下: 问题分析:当我们执行 sum++ 的时候,是两个线程同时进行改变 sum 值的。很容易发生结果丢失,因此最后的结果肯定小于 200000。通过加锁的方式,保证同一时间只能一个子线程操作 sum。...原创 2022-06-29 21:12:49 · 1281 阅读 · 0 评论 -
【C语言】详解线程 — 多线程进行协同运算
目录1、问题2、问题求解求和问题,一个子线程计算 1 + ... + 499 的值,另一个线程计算 500 + ... + 1000 的值,最后二者的和相加,即得到 1 + ... + 1000 的值。等待线程ID id_1 与 id_2 结束后,输出对应的值。...原创 2022-06-29 20:51:25 · 564 阅读 · 0 评论 -
【C语言】详解线程 — 开启两个线程
开启两个线程,如下: 第一个子线程执行到 i = 65 时,开始执行第二个线程;开启两个线程,添加参数信息: 在这里我们用到了 pthread_create 函数的第四个参数,把值传递到 myFunc 形参中去。......原创 2022-06-29 20:28:31 · 2046 阅读 · 0 评论 -
【C语言】详解线程回收函数 pthread_join
线程和进程一样,子线程退出的时候其内核资源主要由主线程回收,线程库中提供的线程回收函叫做 pthread_join(),这个函数是一个阻塞函数,如果还有子线程在运行,调用该函数就会阻塞,子线程退出函数解除阻塞进行资源的回收,函数被调用一次,只能回收一个子线程,如果有多个子线程则需要循环进行回收。另外通过线程回收函数还可以获取到子线程退出时传递出来的数据,函数原型如下:返回值:线程回收成功返回 0,回收失败返回错误号。位于同一虚拟地址空间中的线程,虽然不能共享栈区数据,但是可以共享全局数据区和堆区数据,因此在原创 2022-06-28 19:17:35 · 665 阅读 · 0 评论