
C语言
文章平均质量分 65
代码之外
大四学生,嵌入式小白入门,希望各位大佬多多关照
展开
-
结构体中两个重要的宏
w原创 2021-11-28 00:30:08 · 557 阅读 · 0 评论 -
RTOS共享资源保护
UCOS共享资源保护在UCOSIII中对于共享资源访问的方式有以下几种:关中断的方式禁止任务调度信号量的使用互斥信号量的使用通过下面的表格的分析,我们可以知道他们的使用场景和一些细微的差别资源共享的方法使用场景关中断、开中断方式前提条件:当访问共享资源的速度很快(读取或者写入极少变量时:如喂狗操作、FLASH写数据、需要和中断服务程序共享变量或者数据结构等等)以至于访问共享资源所花的时间小于UCOSIII的中断关闭时间。影响:由于使用该方式会影响中断延迟,所以原创 2021-11-23 18:23:18 · 452 阅读 · 0 评论 -
从零认识结构体-二
结构体的对齐访问一:为什么我们要学习结构体的对齐方式呢?话不多说我们先上代码#include <stdio.h>struct MyStruct{ char s1; int s2;};int main (void){ MyStruct MyStruct; MyStruct.s1 = 't'; MyStruct.s2 = 12; char* p = (char*)(&MyStruct); printf("*p = %c\n", *p); int*原创 2021-11-11 17:03:32 · 392 阅读 · 0 评论 -
从零开始认识结构体—1
初识结构体结构体概述:1.结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。2.结构体和其他类型基础数据类型一样,例如int类型,char类型只不过结构体可以做成你想要的数据类型。以方便日后的使用。3.在实际项目中,结构体是大量存在的。研发人员常使用结构体来封装一些属性来组成新的类型。由于C语言无法操作数据库,所以在项目中通过对结构体内部变量的操作将大量的数据存储在内存中,以完成对数据的存储和操作。从结构体到数组的进步之处:1.结构体可以认为是从数组发展原创 2021-11-06 16:15:50 · 314 阅读 · 0 评论 -
内存从哪里来2
程序中内存从哪里来-堆内存堆内存详解:1. 操作系统对内存管理器:堆管理器是操作系统的一个模块,堆管理器内存分配灵活,按需分配。2. 大块内存:堆内存内存管理器者总量很大的操作系统内存块,各个进程可以按需申请使用,使用完之后手动释放。3. 脏内存:堆内存也是反复使用的,而且使用这用完释放前不会清楚,因此堆内存也是脏的。4. 临时性:堆内存只在malloc和free之间属于我这个进程,而且是可以访问的。在malloc之前和free之后都不能再访问,否则会有不可预料的后果。在程序中堆内存是使用:#原创 2021-11-05 13:10:42 · 97 阅读 · 0 评论 -
内存从哪里来一
带你从零开始认识内存一:程序执行需要内存的支持 对于程序来说,内存就是程序的立足之地(程序是被放在内存中运行的);程序的运行时必须要有内存来存储一些临时变量二:内存的管理是由操作系统来完成的(1)内存本身在物理上是一个硬件器件,有硬件系统来提供(2)内存是由操作系统来统一管理。为了内存管理方便又合理,所以操作系统提供了很多的机制(栈、堆、数据区)来让我们程序员来使用内存。这些机制彼此不同,各自有各自的特点,我们可以通过自己的实际情况来选择某种方式来获取内存。三种内存来源:栈内存(stack原创 2021-11-04 14:05:31 · 526 阅读 · 0 评论 -
深入了解字符串和字符数组
深入了解字符串和字符数组一:深入认识sizeof和strlen(1).sizeof是C语言的一个关键字,也是C语言的一个运算符,很多人可能会误认为sizeof是个函数,但实际上不是,sizeof运算符的作用是用来返回一个类型的或者一个变量所占用的内存字节数。为什么我们需要sizeof呢?,主要的一个原因是int、double等等类型的大小与各个平台的内存有关;二是C语言除了ADT(抽象数据类型:一个数据元素集合以及在这些数据上的操作)之外还有UDT,这些是自定义类型的数据是无法一眼就可以看出来的。=原创 2021-11-03 15:52:22 · 684 阅读 · 0 评论 -
双链表的知识分析
双两表的引入首先,我们应该分析有单链表之后为什么又出现双链表?看名字可以知道双链表就是在单链表的基础上延伸出来的,也决定了它的出现是为了完善单链表的某些缺点。通过上一篇我们对单链表的分析(加一个超链接),我们可以清楚的知道,单链表是对数组的一个扩展,解决了数组的大小比较死板的不容易扩展的问题,但同时也出现了新的问题。在单链表中,单链表的各个节点之间只由一个指针单向链接,所以单链表只能经由指针单向移动,也就是说一旦指针移动经过某个节点就无法回来,如果在操作这个节点,除非从头指针开始再遍历一次,其他的原创 2021-08-25 12:26:08 · 287 阅读 · 1 评论