- 博客(39)
- 收藏
- 关注
原创 C/C++内存布局——代码区、常量区、静态区(BSS段、Data段)
介绍C/C++程序的内存布局,以及提出:定义一堆字符串常量指针会不会占用程序的大小?
2023-09-06 17:20:25 1064
原创 设计模式——C++11实现单例模式(饿汉模式、懒汉模式),与单例的进程
C++11:线程不安全、多次加锁、单次加锁、不加锁实现单例模式。介绍饿汉模式和懒汉模式。最后实现一个单例的进程
2023-09-06 11:18:08 1128
原创 C++——shared_ptr:make_shared的用处,与shared_ptr直接构造的区别
介绍了智能指针底层原理:资源指针、引用计数。介绍了make_shared的作用以及原理
2023-08-31 18:17:53 1689
原创 C++——Vector:push_back和emplace_back的区别,测试写入1GB大数据时的性能差距
介绍了push_back和emplace_back的区别以及应用场景,测试了写入大数据时的性能差距。
2023-08-31 16:25:50 835
原创 C++——vector:resize与reserve的区别,验证写入4GB大数据时相比原生操作的效率提升
介绍resize和reserve的区别,测试写入4GB大数据时性能的差距
2023-08-31 15:11:11 823
原创 C++——多线程编程:<condition_variable> && <atomic>,同步与生产者消费者模型
本文介绍了条件变量的介绍,原理和使用。提到了死锁问题、惊群效应、虚假唤醒三个话题。利用上一节的mutex和本节的condition_variable编写了一个简易的生产者消费者模型。
2023-07-21 13:07:44 234
原创 C++——多线程编程:<thread> && <mutex>,线程与互斥
thread:包括成员方法,std::ref,std::this_thread。mutex:四种mutex锁,两种RAII的锁管理器。分别附带使用示例。
2023-07-16 19:16:25 376
原创 Linux——内核概念
本文简要介绍了Linux内核的概念、承担的角色、工作的方式等。介绍了Linux内核的设计方式,引出了ELF文件格式。最后谈及宏内核与微内核的概念。
2023-07-09 15:19:16 608
原创 C++——string和string_view
string是C++中处理字符串的常用工具,但是存在一些缺点。C++引入了string_view。本文介绍了string_view的优势、使用、原理和注意事项。
2023-07-09 14:48:30 1741
原创 Linux——文件的概念、操作和理解
简要介绍了文件的概念、语言和系统层面的接口。文件描述符、重定向。文件、语言、系统级别的缓冲区。文件的软硬链接。最后借助系统调用模拟实现了C语言的文件接口。
2023-06-24 12:49:35 398
原创 Linux——进程控制:创建、终止、等待、替换
简要介绍Linux下进程的控制方式,包括创建进程,终止进程,等待进程,进程程序替换。介绍了各种接口以及调用方式
2023-06-24 12:25:30 458
原创 STM32——定位模块ATGM336H,数据解析,提取经纬度
STM32F103C8T6,定位模块数据解析,提取经纬度原始数据并转换,串口通信。
2022-07-20 21:15:26 21933 36
原创 sizeof 和 strlen于指针和数组的应用
在C语言中,我们时常需要计算和统计一个对象的空间大小或“长度”,我们便可以运用sizeof 和 strlen 来简便地得到结果,但是这俩在使用的时候仍有不少值得注意的细节。sizeof在C语言中,sizeof是一个判断数据类型或者表达式长度的操作符,而并非一个函数。在初见sizeof时我以为这是一个函数,在后面查阅资料才知道并不是函数而是操作符。其返回值是一个对象或类型所占用的内存字节数,返回类型为size_t,也就是unsigned int。sizeof的语法:sizeof (data type
2022-03-06 11:14:22 1080
原创 C语言实现简易三子棋,支持双人对战,电脑可拦截
在学习二维数组后我们加以应用能写出三子棋这样一个小游戏。具体实现并不复杂。基本思路:游戏首先打印菜单,由我们选择单人游戏,双人游戏或退出游戏。三子棋需要一个棋盘,我们可以通过循环打印来构造一个简单的3x3棋盘。我们需要一个函数在每次下棋子后都打印一次来表示目前的棋盘,于是创建一个二维数组接收棋子后方可遍历打印。我们用 * 和 # 代表两种棋子。游戏过程中玩家输入下标下棋后电脑下,直到决出胜负或平局。直接看代码。我们在写程序的时候要将函数模块化,不把所有函数都堆在一个源文件里。我们新建一个主
2021-11-08 21:02:50 4402 2
原创 C语言 3位数水仙花数以及牛客网变种水仙花数,多种方法求解
先看水仙花数:输出所有的水仙花数,水仙花数是指一个3位数,其各位数字立方和等于该数本身。例如153=1^3 + 5^3 + 3^3思路:我们要做的是把三位数逐位拆开,因此我们可以定义三个变量用于存储各位。解法:用循环遍历100到1000之间,即所有的三位数。拿153举例,得到各位数后用三个变量接收,如果各位的三次方相加等于 153 ,即打印 153 。上代码。#include<stdio.h>int main(){ for (int i = 100;i < 1000
2021-11-02 15:15:59 2338
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人