自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(11)
  • 收藏
  • 关注

原创 Linux系统查看系统配置(简易版)

我想查看一共有多少内存的时候用这个,第一个,单位是G,用-m时候单位是M。或者是这个,可以查看内存使用情况。或者用,可以查看内存、进程、负载。或者是,但这个方法我没成功。用这个可以查看主板信息。2.查看PCIE版本。

2023-12-18 11:19:36 88 1

原创 Modbus-RTU协议(简单易懂版)

可以看到,请求PDU是由功能码(1字节)+起始地址(2字节)从0x0000到0xFFFF+寄存器数量(2字节)1-125组成,例子中,功能码03,起始地址高和低各占一个字节,先高后低,寄存器编号也是一样,右侧响应给我们的是返回了左侧请求的从006B也就是108开始,108、109、110这三个寄存器的值,同样是高位在前。在从机端,当没有收到请求时,从机处于空闲状态,当从主机收到一个请求后,从机首先对报文进行检验,如果检验没有问题,则进行处理,完成请求动作,发出正常应答。

2023-12-15 17:25:05 4879

原创 写代码、调试常用快捷键、技巧整理

3. error: unterminated #if 或 error: unterminated #ifndef 或 error: unterminated #ifdef。1. 如果遇到定义重复的报错,可以直接去找定义,这时候会出现两个可选的定义,就能找到重复的定义了。4. 写include的时候一定注意名字和地址别写错了,上次落了个2...我出现这个问题是因为类型的定义重复,用上面第一点解决。出现这个问题可能是地址错了,可能是名字写错了...ctrl+xcv 老员工了,剪切复制粘贴。

2023-09-28 17:13:08 604

原创 C语言——32个关键字

整理自由ANSI标准定义的C语言关键字共32个:根据关键字的作用,可以将关键字分为和两大类。后续更改会进行详细的介绍整理。:开关语句中的“”分支,可选。以上循环语句,当循环条件表达式为真则继续循环,为假则跳出循环。

2023-09-21 00:24:45 93

原创 C语言——flose函数出错的可能情况

如果用上述三个函数打开文件不成功而不检查返回的文件指针是否正确,甚至没有给文件指针赋值,最后再传给fclose的时候也会关闭文件失败。在写文件过程中,文件内容并没有真正存入磁盘空间,而是保留在缓冲区中,以便提高访问速度。到关闭文件时,系统要把缓冲区中的数据真正写入到磁盘上,如果磁盘空间满了或者磁盘有故障,关闭文件就会失败。关闭这些设备文件时,如果设备异常(比如设备断开了),关闭文件也可能会失败。如果在前面的执行流程的某个分支里把文件已经关闭了,在后面重复执行fclose关闭这个文件,也导致关闭失败。

2023-09-21 00:10:32 801

原创 C语言——关键字volatile

volatile 关键字和 const 对应,用来修饰变量,通常用于建立语言级别的什么是 memory barrier?也称为内存栅栏,是一种指令或指令序列,用于控制处理器和内存的交互,并确保对内存的访问按照预期的顺序和时序进行。在并发编程中,当多个线程或处理器同时访问共享内存时,由于缓存和指令重排序等优化机制的存在,可能会导致数据不一致或破坏程序的正确执行顺序。内存屏障的作用就是在多线程或多处理器之间建立障碍,以限制或规范内存操作的重排序和可见性。

2023-09-20 23:59:52 110 1

原创 C语言——连续赋值的两种情况

我们知道变量在未声明前不能使用,所以在c=5时,c还没定义,因此语法错误。因此第二种情况,先对三个变量进行定义,再进行赋值就可以正确的进行连续赋值。因为:=具有右结合性,因此在第一种情况下等价于。第一种:int a=b=c=5;第二种:int a,b,c;那么第一种错误,第二种正确。

2023-09-19 15:54:24 1387 1

原创 C语言——void指针的使用注意事项

4.不能对void类型指针直接进行算术操作,ANSI中规定进行算术操作的指针必须知道其内存地址的确切值。5.如果函数的参数可以是任意类型指针,那么可以用void指针作为他的形参。3.任何类型想要赋值给void类型时需要进行强制类型转换。1.无类型的指针,ANSI中取代char*代表通用指针。2.可以被任何类型赋值。

2023-09-19 15:53:01 66 1

原创 C语言——逻辑运算符:逻辑与&&、逻辑或||和按位运算符:按位与&、按位或|、按位取反~、按位异或^

对一个数进行按位取反,首先将这个数转换为二进制,然后每一位上的0变成1,1变成0。两个数按位或:将两个数分别转换为二进制,从低位开始依次比较,如果都是0,那么结果为0;两个数按位与:将两个数分别转换为二进制,从低位开始依次比较,如果都是1,那么结果是1;两个数按位异或:将两个数分别转换为二进制,从低位开始依次比较,如果相同则为0,不同则为1。如果运算符两侧的表达式值都是0,则结果为false,其余为true。例如:a=5,b=3,那么c=a|b为7。比如:a=5,b=3,则c=a^b为6。

2023-09-03 22:58:54 594

原创 C语言——memcmp函数

int memcmp(const void *buf1, const void *buf2, unsigned int count);比较内存区域buf1和buf2的前count个字节注意:按照字节进行比较注意:当buf1和buf2是字符串时,就是对应字节的ASCII码注意:当要比较的字节数count大于字符串的长度,它会继续比较下去,可能会对结果造成影响。因此要注意在比较字符串时count不能超过较短的字符串长度当buf1

2023-08-31 15:39:21 143

原创 从零开始的Linux学习操作笔记

零基础记录Linux入门常用命令和一些概念以及方便操作

2023-08-30 15:42:27 56

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除