自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 写实拷贝技术

任意进程之间是具有独立性的,不会互相影响。创建一个进程的时候,系统中就会多一个进程,当子进程创建时,系统就必须为子进程创建出一个全新的PCB(task_struct),父进程会把自己PCB中很多内容拷贝给子进程的PCB,也就是说,子进程被创建,是以父进程为模版的。进程都有自己的代码和数据,系统创建出来的子进程的PCB默认就会指向父进程的代码和数据,想让父子进程分别执行不同的程序,那就可以在代码中根据父子进程fork返回值的不同设置ifelse语句,让父子进程分别执行不同的代码。,而当子进程或者父进程对。

2024-08-08 02:58:33 156

原创 Linux静态库和动态库使用

而动态库的出现就弥补了静态库上的弊端,因为动态库是在程序运行时被链接的,所以磁盘上只保留一份副本,因此节约了磁盘空间。.将所有方法的.c文件编译成.o文件 命令是 gcc -c max.c add.c生成max.o和add.o文件。.将所有方法的.c文件编译成.o文件 命令是 gcc -c max.c add.c 生成main.o和add.o文件。linux上库的命名一般位libxxx.a(静态库)libxxx.so动态库,库文件存放的地点位/lib或者/usr/lib。

2024-08-07 01:27:19 296

原创 makefile文件介绍

如果没有makefile文件 使用该命令编译gcc -o main main.c add.c max.c 但有两点缺陷,其一:当有多个.c文件时 我们写这条命令不现实,其二,每次执行都会编译所有.ca文件 当时修改了一个时 效率低。自己也可以编写过Makefile文件,如下图 将main.c add.c max.c 文件生成可执行文件main。最后rm -rf *.o main是清除功能。递归清除所有的.o文件和main文件。Makefile是自动化编译工具,可以提高编译效率,,这就提高了编译效率。

2024-08-05 03:52:42 192

原创 编译链接过程,linux编译语句

3 生成符号表:符号表中存放的就是程序所产生的符号(例如:函数名,变量名等),我们的编译阶段是不会去给符号分配正确的地址。1 执行以预编译指令(#开始的):宏定义、文件包含、条件编译(防止重定义):生成.out文件(ELF格式的可执行文件)(windows生成.exe):将.s文件生成.o文件(可重定位的二进制目标文件)(生成机器语言)2 符号重定位:在使用符号的地方全部地换成符号的虚拟地址。.o(静态库)、.lib、.obj----->:将.i文件生成.s文件(生成汇编语言):将源文件.c生成.i文件。

2024-08-04 23:55:20 192

原创 if与#if区别 ,#ifndef/#define/#endif 用法

分析:当第一次包含test.h时,由于没有定义_TEST_H,条件为真,这样就会包含(执行)#ifndef _TEST_H和#endif之间的代码,当第二次包含test.h时前面一次已经定义了_TEST_H,条件为假,#ifndef _TEST_H和#endif之间的代码也就不会再次被包含,这样就避免了重定义了。在头文件中使用#ifndef #define #endif能避免头文件的重定义。头文件结尾写上一行:#endif这样一个工程文件里同时包含两个test.h时,就不会出现重定义的错误了。

2024-08-04 22:34:36 194

原创 Linux mkdir -p命令

mkdir是创建文件的命令 ,参数-p递归创建。

2024-08-01 19:29:10 322

原创 左右值引用简单介绍

const左值引用不会修改指向值,因此可以指向右值,这也是为什么要使用const &作为函数参数的原因之一。引用本质是别名,可以通过引用修改变量的值,传参时传引用可以避免拷贝,其实现原理和指针类似。所以有地址的变量就是左值,没有地址的字面值、临时值就是右值。//左值引用指向了右值,编译失败。//左值引用指向左值,编译通过。//右值引用的用途,可以修改右值。

2024-01-20 20:33:25 350

原创 用scanf输入空格

但这时会报arr corrupt,因为arr只声明了10字节,数组已经有十字节了,还要加上\0就越界了。此时只输出了一个you 因为遇到空格就结束了。//这是只有输入\n时才结束。

2023-11-17 18:59:59 51

原创 c语言动态内存

它的参数是一个指针,指针指向的空间是动态内存分配出来的一块空间。它会释放掉这块空间,将这块空间还给操作系统。它会向内存申请一块连续可用的空间,空间大小是。个字节,并返回指向这块空间的指针。

2023-11-16 19:29:57 26

原创 动态内存申请的地址用指针保存 可以说动态内存是申请的一个指针吧

int* arr=(int*)malloc(n)像系统申请n字节内存,申请的内存放在堆里,若申请成功,则返回指针给你,该指针就指向该内存的开头(要操作改地址 得用指针保存该地址 所以是申请的int*型 ) 并且申请之后的内存中并没有初始化。由于“堆”有一个特性——由程序自行管理内存,所以在申请了动态内存之后,需要利用free ()自行释放,这是为了避免出现野指针,并且把指向这块内存的指针指向NULL,防止之后的程序再用到这个指针。我们动态内存申请来得是一块连续的空闲的地址,

2023-11-09 13:45:42 37 1

空空如也

空空如也

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

TA关注的人

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