枫叶先生的网络日志
简介
这位用户还没有填写个人简介...
发布 369 篇文章
加入于 2024-10-01
44_「C++」malloc 线程安全与可重入问题
- 2024-10-28
- 92
- 0
- 0
- 33.2℃
「前言」文章内容大致是关于 malloc 的线程安全与可重入问题。 malloc 的线程安全与可重入 线程安全就是多个线程并发执行相同代码,程序的结果依然是正确的。 可重入函数是指能被线程并发调用,且调用过程不会出现错误的函数。关键在于,当函数在执行过程中被中断,转而执行其他代码(比如被另一个线程
43_「C++」shared_ptr 的线程安全问题实验
- 2024-10-27
- 88
- 0
- 0
- 32.8℃
「前言」文章内容大致是关于 shared_ptr 智能指针线程安全问题实验验证。 shared_ptr 是线程安全的吗?对此问题,需要从三个并发场景进行考虑: 拷贝 shared_ptr 的安全性。 对 shared_ptr 赋值的安全性。 读写 shared_ptr 指向内存区域的安全性。 一、
42_「C++」IO流
- 2024-10-26
- 67
- 0
- 0
- 30.7℃
「前言」文章是关于C++的 IO 流的讲解。 一、C语言的输入与输出 C语言中我们用到的最频繁的输入输出方式就是 scanf () 与 printf()。 scanf():从标准输入设备(键盘)读取数据,并将值存放在变量中 printf():将指定的文字/字符串输出到标准输出设备(屏幕),使用时需要
41_「C++11」线程库
- 2024-10-26
- 51
- 0
- 0
- 29.1℃
「前言」文章的大致内容是 C++11 的线程库。 一、简介 在C++11之前,涉及到多线程问题,都是和平台相关的,比如 windows 和 linux 下各有自己的接口,这使得代码的可移植性比较差。C++11中最重要的特性就是对线程进行支持了,使得C++在并行编程时不需要依赖第三方库,而且在原子操作
40_「C++」类型转换
- 2024-10-26
- 52
- 0
- 0
- 29.2℃
「前言」文章内容大致是 C++ 的类型转换。 一、C语言中的类型转换 在C语言中,如果赋值运算符左右两侧类型不同,或者形参与实参类型不匹配,或者返回值类型与接收返回值类型不一致时,就需要发生类型转化,C语言中总共有两种形式的类型转换:隐式类型转换和显式类型转换。 隐式类型转化:编译器在编译阶段自动
39_「C++」特殊类设计
- 2024-10-26
- 56
- 0
- 0
- 29.6℃
「前言」文章内容大致是特殊类设计。 一、请设计一个类,不能被拷贝 拷贝只会发生在两个场景中:拷贝构造函数以及赋值运算符重载,因此想要让一个类禁止拷贝,只需让该类不能调用拷贝构造函数以及赋值运算符重载即可。 C++98的做法 将拷贝构造函数与赋值运算符重载只声明不定义,并且将其访问权限设置为私有即可
38_「C++11」智能指针
- 2024-10-26
- 50
- 0
- 0
- 29.0℃
「前言」文章内容大致是智能指针。 一、 为何需要智能指针 1.1 内存泄漏问题 关于内存泄漏的问题,例如下面的代码: #include <iostream>
using namespace std;
int div
37_「C++11」异常
- 2024-10-26
- 45
- 0
- 0
- 28.5℃
「前言」文章内容大致是 C++ 的异常处理。 一、C语言传统的处理错误的方式 C语言传统的错误处理机制: 终止程序:如 assert,缺陷:用户难以接受。如发生内存错误,除0错误时就会终止程序。 返回错误码:存在缺陷,需要程序员自己去查找对应的错误。如系统的很多库的接口函数都是通过把错误码放到 e
36_「C++11」function 和 bind 包装器
- 2024-10-26
- 48
- 0
- 0
- 28.8℃
「前言」文章内容大致是 function 和 bind 包装器。 // 普通函数
int add(int a, int b) { return a + b; }
// 函数指针
int (*fun
35_「C++11」晦涩难懂语法:可变参数模板
- 2024-10-26
- 56
- 0
- 0
- 29.6℃
「前言」文章的大致内容是可变参数模板表达式。 可变参数模板 1.1 概念 在C语言阶段,我们已经接触过可变参数,比如 scand、printf 等等。 这里的 ... 就是可变参数列表,这也是 scanf 和 printf 可以接受多个参数的原因:使用了可变参数列表,但是scanf 和 printf