自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 基于Linux下的简易日志功能实现

其中宏定义的AbsolutePath "/home/linux/11.30"是用于存储日志文件的路径结构体struct DATE是用来对日志文件进行日期的区分,以保证同一天会将相关内容存入同一个文件,而不同日期下则会创建新的日志文件,便于进行查询。枚举类型enum LogLevel用于对日志存储的内容进行分类。

2023-12-13 15:09:58 499 1

原创 C语言学习day16

在不同区间内,会申请不同的空间。存放指令,顺序执行,需要开辟局部变量空间时跳转到系统栈区(用于存放操作型代码)。有申请空间的地方,使用结束后,需要释放,否则会引发内存泄漏。函数调用时在栈区开辟栈帧(用于存放数据型代码,即局部变量存放位置)。存在数个不等的区间,在同一区间内,会申请相同的空间;在申请空间时,会依据空间大小,申请额外的空间。弹栈(出栈):被调函数执行结束后跳转回主函数,被调栈帧回收的操作。压栈(入栈):函数调用时跳转到被调函数,为被调函数开辟栈帧。从定义开始开辟空间,到离开作用域回收空间。

2023-11-14 22:19:40 41 1

原创 C语言学习day14

即, int *(*p)(int, int) = fun(int, int)与函数相比,当调用次数过多时,代码体积较大,占用较多代码段空间。与函数相比,不再有入栈,出栈,传参等一系列操作,效率高。被调函数内部返回的指针一般不能是函数内部的局部变量。define后接多行代码时,要用'\'符号进行连接。返回值类型 (*p)(变量1,变量2...)递归需要函数反复的调用(入栈,出栈,传参);是一个函数,返回值为指针类型的函数。宏的本质是,在编译阶段进行文本替换。指针指向的是 *fun。是一个指针,指针指向函数。

2023-11-14 08:57:18 29 1

原创 C语言学习day13

/定义一个指针,指针指向数组a,a中有五个元素,每个元素都是int型。//定义一个数组a,其中有五个元素,每个元素都是int *型。//文本替换,即将所有出现P_INT的位置替换为int *,可以理解为类型别名。//arry[0]是int **常量。被调想要改变主调空间的值,就需要对主调空间类型&,得到该类型的指针。指针的数组,在函数传参时,数组名对应类型为指向元素这个一级指针的指针。//arry[0]是int *常量。//p是一个int *型,q依然是int型。是一个数组,其中的元素是指针。

2023-11-11 20:47:50 44 1

原创 C语言学习day12

如果函数定义的参数为void fun(struct student *stu)时,引用结构体内部的变量需要用到指针传递,即stu0->name,stu0->sex......,并且在调用函数时,需要传递一个地址名。可以通过结构体变量名加成员类型//stu0.name stu0.age。嵌套定义访问时//dt0.d.year dt0.t.hour。可以通过指针以结构体变量名加成员类型//(&stu0)->name。遇到指针类型成员变量用->,遇到普通成员变量用.struct 结构体类型名。

2023-11-08 21:18:20 26 1

原创 C语言学习day11

p - p //同种类型下,两指针地址偏移量所包含的指针指向数据类型的个数。p + N //指针向高地址偏移N倍个自身指向数据类型字节的空间。p - N //指针向低地址偏移N倍个自身指向数据类型字节的空间。p++,++p //指针向高地址偏移自身指向数据类型字节的空间。p--,--p //指针向低地址偏移自身指向数据类型字节的空间。//其中的内容有两份,分别在栈帧和字符串常量区,栈帧区内容可以被修改。指针的值是一个地址编号,具有指向性,描述连续空间的起始位置。

2023-11-08 09:27:13 30 1

原创 C语言学习day10

extern关键字使用时,在编译阶段,需要gcc 加多个.c文件同时编译,否则编译器会提示未定义引用。当函数返回值类型为非void时,必须写return,若为void时,也最好写return;使生命周期延长,但只有局部变量的作用域,保存在数据区。函数调用时,出现形参与实参数据类型不一致时,实参向形参进行隐式转换。从程序执行到定义时开辟空间,到离开作用域被回收空间。利用全局变量的全局作用域,在两个函数间实现信息传递。作用域重叠时,最近的变量作用域会屏蔽较远的。默认,存放在系统栈空间,即为局部变量。

2023-11-06 21:11:31 497 1

原创 C语言学习day9

int arry[5][10]中,存在的是有5个一维数组arry[10],因此是5行10列。n:访问二维数组中的第m+1个元素(一维数组)中的第n+1个元素(元素)int arry类型为 int [5][10]字符串有效字符数量统计(不包括'\0')需要用到strcpy函数。

2023-11-04 20:50:11 58 1

原创 C语言学习day8

局部初始化只会按顺序初始化,且未初始化的元素自动初始化为0。在新标准下如果编译阶段不能确定,才会在执行阶段确定。N需要是一个整形常量或整形表达式(c89/c99标准)下标:0 —— N-1,可以是常量、变量或表达式。数组是一种构造数据类型,由数据类型相同的n个元素组成的集合。默认初始化数组大小由元素数量决定。在编译阶段执行(c99标准)数组中所有元素类型必须相同。元素在内存中是有序存放的。元素在内存中是连续存放的。数据类型+数组名[N]

2023-11-02 21:44:35 24 1

原创 C语言学习day7

当不明确循环上下限,但明确循环结束条件时,一般使用while循环。}whlie(表达式);(注意该循环whlie后有分号)do while循环结束的条件依赖循环体的执行结果。当明确循环执行次数或上下限时,一般使用for循环。在Switch语句中,用于跳出Switch语句。再循环体内,跳出当次循环的执行,不影响后续循环。程序反复执行某段代码,直到满足条件循环结束。在循环体内,跳出距离最近的循环。需要配合flag标号实现。表达式2:循环结束条件。表达式3:循环变量改变。while(表达式)

2023-11-01 21:08:32 34 1

原创 C语言学习day6

补充:1.可以利用int ret = getchar(),同时实现在终端获取一个字符,并获取其ASCII码值赋予ret。if分支若没有{},则else和else if会自动向上匹配最近的if语句。在通过putchar(ret)将ret对应的ASCII码值对应字符输出。在通过ch=(ch>='a'&&ch<='z')?(ch-32):ch。if后,else if后,else后不能加;switch()括号内部需要一个整形值。这一句语句可以直接实现将大写字母转为小写并赋给ch。自上至下,自左至右,依次执行。

2023-10-31 21:12:56 25

原创 C语言学习day5

putchar(常量,变量,表达式)括号内本质是需要一个ASCII值。%#x:以十六进制整形输出(#以所需的进制标准格式输出)若要把12传给a,则需输入mm12。非格式化控制符仅用作格式匹配(尽量不用)%u:以十进制无符号整形输出。%#o:以八进制整形输出。%lf:以双精度类型输出。输出包含多个格式化控制符的字符串。成功则返回本次打印的有效字符数量。注意:%f和%lf不兼容。%d:以十进制整形输出。%f:以单精度类型输出。%e:以科学计数法输出。输出多个字符需要多次调用。获取多个字符需要多次调用。

2023-10-30 20:52:40 94

原创 C语言学习day4

gcc -E hello.c -o hello.i(只进行预处理阶段)gcc -c hello.s -o hello.o(目标程序)常量: 有空间 有值 有类型。变量: 有空间(不能访问) 有值 有类型。②大空间的数据类型 精度高于 小空间数据类型。③无符号数据类型 精度高于 有符号数据类型。表达式:有空间(临时性空间)有值 有类型。无符号数据类型:高位补零。浮点型数据 转 整形及整形兼容型数据。整形及整形兼容型数据 转 浮点型数据。(数据类型)变量,常量,表达式。

2023-10-29 19:49:28 28 1

原创 C语言学习day3

定义为整形(char ch=1),若输出为%c,则以十进制形式对ASCII码表输出对应字符;定义为字符型(char ch='m'),若输出为%d,则输出定义字符的ASCII码值;定义为字符型(char ch='m'),若输出为%c,则输出定义的字符;定义为整形(char ch=1),若输出为%d,则输出定义的整形;64个bit位中:1位符号位,11位指数位,52位尾数位。32个bit位中:1位符号位,8位指数位,23位尾数位。1.sizeof运算符sizeof(数据类型,变量名,常量)(单目)

2023-10-26 18:18:13 31

原创 C语言学习day2

(对只读文件进行强制写入)垂直分屏 :sp+ path/filename(不存在的文件自动创建)long(长整型) 32位 4B 64位 8B(%ld打印)插入模式 i(标准>>插入)(处于文件内容缓存区)(如需返回则按Esc)复制:将光标移动到需要复制的行 yy(多行复制在yy前加需要复制的行数)剪切:将光标移动到需要剪切的行 dd(多行剪切在dd前加需要剪切的行数)选中:v+移动选中内容+y(复制)/d(剪切)/p(粘贴)longlong(超长整形) 8B(%ld打印)

2023-10-25 19:00:06 35 1

原创 C语言学习第一天

d(文件类型)rwxr-xr-x(操作权限) 4(硬链接数) linux(用户名) linux(组名) 4096(大小) Mar 18 2020(修改时间) Cpp_language(文件名)cp -r A,B,C(多个源文件或文件夹) X/ (一个目标路径)(如果携带文件名则重命名且不能多文件操作)11.拷贝一个或多个文件:cp A,B,C(多个源文件) X/ (一个目标路径)(如果携带文件名则重命名且不能多文件操作)3.放大窗口 Ctrl+Shift+(+)详细展示信息 ls -l。

2023-10-25 08:58:45 44 1

空空如也

空空如也

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

TA关注的人

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