摘要: #include <iostream> /* #pragma pack(4) */ using std::cout; using std::endl; //1 4 2 1 struct x { char a; int b; short c; char d; }MyStructX;//12 struc 阅读全文
posted @ 2023-03-25 18:56 MyXjl 阅读(9) 评论(0) 推荐(0) 编辑
摘要: 初步用C++实现单例模式,暂未考虑线程安全问题 #include <stdio.h> #include <iostream> using std::cout; using std::cin; using std::endl; // 单例模式的设计需求:一个类只能有一个对象 // 思路:创建的对象肯定 阅读全文
posted @ 2023-03-25 18:06 MyXjl 阅读(8) 评论(0) 推荐(0) 编辑
摘要: 1 const关键字与宏定义的区别是什么? 答: const常量具有类型,编译器可以进行安全检查,一旦出现bug,在编译阶段就可以发现。而宏定义发生在预处理阶段,它只是进行简单的字符串替换 ,一旦出现bug,可能在运行时才知道。 2 malloc的底层实现是怎样的?free是怎么回收内存的? 答: 阅读全文
posted @ 2023-03-23 14:34 MyXjl 阅读(11) 评论(0) 推荐(0) 编辑
摘要: Linux文件操作 Linux的文件 Linux中对目录和设备的操作都是文件操作,文件分为普通文件,目录文件,链接文件和设备文件 普通文件:也称磁盘文件,并且能够进行随机的数据存储(能够自由seek定位到某一个位置) 管道:是一个从一端发送数据,另一端接收数据的数据通道 目录:也称为目录文件,它包含 阅读全文
posted @ 2023-03-22 21:49 MyXjl 阅读(86) 评论(0) 推荐(0) 编辑
摘要: Linux系统编程 文件 重要 难度 目录流 3 4 无缓冲IO 5 2 IO多路复用 5 5 IO多路复用可用于制作即时聊天系统 进程 重要 难度 虚拟 4 3 CPU 进程调度 4 3 内存 虚拟内存 4 3 多进程 3 3 线程 重要 难度 多线程 5 2 互斥 5 3 同步cond 6 4 阅读全文
posted @ 2023-03-22 20:54 MyXjl 阅读(17) 评论(0) 推荐(0) 编辑
摘要: 库文件 目标文件的集合(*.o) 静态库和动态库 静态库:类比家用车,将库打包到产品(可执行程序) 动态库:类比F1赛车,运行时才加载到可执行程序 可执行程序大小 部署难度 升级难度 静态库 大 易 难 动态库 小 难 易 静态库的生成 生成目标文件 把目标文件打包成静态库 将静态库移动到/usr/ 阅读全文
posted @ 2023-03-22 17:04 MyXjl 阅读(24) 评论(0) 推荐(0) 编辑
摘要: 易混淆的几个概念 常量指针与指针常量 int value = 0; int num = 1; // 1.当const位于 * 左边时,称为常量指针 const int* p1 = &value; int const *p2 = &value; *p1 = 10; // error 不能改变指针所指变 阅读全文
posted @ 2023-03-21 20:35 MyXjl 阅读(42) 评论(0) 推荐(0) 编辑
摘要: 同一个进程下的多线程是多个独立的执行流,它们会并发地访问共享资源,这种情况下可能会出现问题: #include <47func.h> //系统目录下自定义的头文件(包含下面函数所需的头文件) int global = 0; // 共享资源 void* threadFunc(void* arg) { 阅读全文
posted @ 2023-02-28 23:33 MyXjl 阅读(16) 评论(0) 推荐(0) 编辑
摘要: printf的流程 将内存中的数据拷贝到stdout中 将stdout拷贝到FO文件对象中(文件对象帮助与硬件进行交互,输出到屏幕上) 清理stdout 在Linux中,若printf的格式化字符串未添加 \n ,则只会将内存中的数据拷贝到stdout,待程序结束清理stdout才会输出到屏幕。 # 阅读全文
posted @ 2023-02-28 23:20 MyXjl 阅读(57) 评论(0) 推荐(0) 编辑
摘要: 编译工具链 IDE(集成开发环境):visual studio,clion,Eclipse,xcode SDK(software Development Kit):软件开发工具包 GCC(GNU C Compiler) // 查看gcc版本 gcc -v 预处理(-E) 作用:执行预处理指令 常见的 阅读全文
posted @ 2023-02-23 14:16 MyXjl 阅读(101) 评论(0) 推荐(0) 编辑