![](https://img-blog.csdnimg.cn/20201014180756738.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C
文章平均质量分 87
循梦
这个作者很懒,什么都没留下…
展开
-
系统文件IO与标准文件IO
基本概念文件的概念文件本质上都是储存在计算机磁盘(储存设备)中二进制0/1的数据,只不过根据这些二进制数据作用的不同,意义的不同,人为地对着这些数据进行了管理、抽象出一个个不同的文件类型“文件”—抽象的概念—表述磁盘内容的在Linux系统语境下,文件(file)一般有两个基本含义:狭义:指普通的文本文件,或二进制文件。包括日常所见的源代码、word文档、压缩包、图片、视频文件等等。广义:除了狭义上的文件外,几乎所有可操作的设备或接口都可视为文件。包括键盘、鼠标、硬盘、串口、触摸屏、显原创 2021-11-17 15:58:07 · 1217 阅读 · 0 评论 -
指针、野指针、指针常量、常量指针
指针概念指针是什么?在计算机科学中,指针(Pointer)是编程语言中的一个对象,利用地址,它的值直接指向存在电脑存储器中另一个地方的值。由于通过地址能找到所需的变量单元,可以说,地址指向该变量单元。因此,将地址形象化的称为“指针”。意思是通过它能找到以它为地址的内存单元。内存地址字节(byte):字节是内容的容量单位,英文称为byte,一个字节有8位,即1byte = 8bits字(word):4byte = 1字 半字:2Byte地址:系统为了便于区分每一个字节而对它们逐一进行原创 2021-11-16 12:44:09 · 1217 阅读 · 0 评论 -
结构体与其对齐规则
结构体定义格式//基本定义格式struct 结构体类型名{ 成员1类型 成员1名; 成员2类型 成员2名; 成员3类型 成员3名; .... 成员n类型 成员n名;};例如:struct Student_info{ char Name[64]; char ClassID[7]; char Sex; char Age;};//如何使用自定义的结构体类型去定义变量:格式:struct 结构体类型名 结构体变量名;struct Student_info原创 2021-11-15 12:33:32 · 893 阅读 · 0 评论 -
Linux 进程与进程间通信
进程的概念我们编写的代码只是⼀个存储在硬盘的静态⽂件,需要经过编译器的预编译、编译、汇编以及链接形成一份可执行文件,再将它加载到内存中,让CPU逐条执行并做出相应的动作,才形成一个动态的进程。一份可执行文件中,除了包含有数据段、代码段的相关数据,还有ELF头以及其它的辅助信息。ELF文件里大部分的数据是与程序本身的逻辑没有关系的,只是程序被加载到内存中运行时,系统会对这些辅助信息进行处理。而执行时真正被复制到内存中的只有 .data、.rodata、.text、.init段的内容,.bss段放的是未初原创 2021-11-09 15:03:06 · 352 阅读 · 0 评论 -
进程的内存分布
Linux-内存分布C进程的内存布局Linux和windows都是支持多任务多用户的高级操作系统**进程(process):**一段程序的执行过程对于一个C程序,在运行过程系统对这个进程的内存资源管理非常重要;任何一个程序,想要正常运行都需要内存资源,用来存放诸如变量、常量、函数代码等等。这些不同的内容,所存储的内存区域是不同的,且不同的区域有不同的特性。因此我们需要研究进程的内存布局,逐个了解不同内存区域的特性。每个C语言进程都拥有一片结构相同的虚拟内存,大小一般为4G,所谓的虚拟内存,就是从原创 2021-10-11 08:47:21 · 3772 阅读 · 1 评论 -
cmake工具的基本使用及模板
cmake文章目录cmake简介应用场景Linux的Cmake编写CMakeLists.txtCmake模板Cmake简单查询信息简介CMake是一个跨平台的安装(编译)工具,可以用简单的语句来描述所有平台的安装(编译过程)。他能够输出各种各样的makefile或者project文件。应用场景当你的工程带有强移植性,则会面临一个问题:在不同的平台你要根据不同情况编写makefile文件,每次都需要重新编写,带来了移植上的麻烦,所以,如果能定制一套更上层的规则,规定如何根据不同情况生成不同的make原创 2021-08-11 12:59:07 · 561 阅读 · 0 评论 -
makefile
Makefile基础文章目录Makefile基础什么是makefile?makefile的make基本规则makefile基本书写规则makefile注释makefile编写改进什么是makefile?makefile关系到了整个工程的编译规则。一个工程中的源文件可以有很多,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为makefile就像一个Shell脚本一样,其中也可原创 2021-08-10 11:04:08 · 300 阅读 · 0 评论 -
特殊函数--变参函数及相关宏
特殊函数-变参函数定义的函数在使用时传入的参数是不定量不定类型—变参函数include <stdarg.h>例子:printf("abc %d def %c g\n",num,ch);其中"abc %d def %c g\n"为固定参数,num,ch为变参列表(...)//需要的几个宏和函数void va_start(va_list ap, last);type va_arg(va_list ap, type);void va_end(va_list ap);void va_原创 2021-08-07 16:19:10 · 237 阅读 · 0 评论 -
printf()+sprintf()源码解析笔记
printf的Linux C源码解析文章目录printf的Linux C源码解析头文件引用及宏定义strnlen函数__div64_32函数宏- -do_divskip_atoi函数number函数vsprintf函数sprintf函数printf函数该笔记是我看的第一个源码所做的笔记,有些地方的解读可能不是很合理,之后有时间会继续进行优化笔记。头文件引用及宏定义#include <stdarg.h>#include <stddef.h>#include "string.原创 2021-07-23 16:21:28 · 5053 阅读 · 2 评论 -
数据在内存中的存储
数据在内存中的存储文章目录数据在内存中的存储计算机中的数据数据类型类型的基本归类整型在内存中的存储原码、反码、补码大小端介绍浮点型在内存中的存储二进制与十进制的转换计算机中的数据正如大家所看到的,我们所使用的数据在计算机内存中是以二进制位序列的方式存放的;如图中的…0000001000000000000000000000000011001100…;在这些二进制位序里,每一位上的数字,不是0就是1。在计算机中,位(bit)是含有0或1值的一个单位。在物理上,它的值是一个负或正电荷。也就是计算机中可以原创 2021-07-21 08:59:23 · 861 阅读 · 1 评论 -
格式化标准输出函数printf()与格式化标准输入函数scanf()
printf()函数与scanf()函数格式化标准输出函数 ——printf()概念:屏幕是系统的标准输出设备,从屏幕中输出数据被称为标准输出相关函数:printf():格式化标准输出函数函数原型:#include <stdio.h>int printf(const char *format,...);//...表示可变参数,即表示可以只有format这一个参数,也可以表示后面还有其它参数。函数说明:printf系列函数能够对这种不同类型的参数进行格式化编排和输出。f原创 2021-07-15 10:21:02 · 845 阅读 · 0 评论