菜鸟笔记
提升您的技术认知

c 笔记-ag真人游戏

多线程并发编程的基本问题

菜鸟阅读 : 1560

这是个老掉牙的话题,但基本上绝大多数的讨论都跑偏了。 绝大多数讨论的核心在于 如何设计一把锁来同步共享变量的访问。 这事实上完全是本末倒置: 我们需要设计的一个立交桥,而不是为了设计一个红绿灯! 事实上,多线程编程就不应该访问共享变量,如果...

c 强制类型转换(static_cast 和dynamic_cast)

菜鸟阅读 : 1601

首先回顾一下c 类型转换: c 类型转换分为:隐式类型转换和显式类型转换 第1部分. 隐式类型转换 又称为“标准转换”,包括以下几种情况: 1) 算术转换(arithmetic conversion) : 在混合类型的算术表达...

结构体大小、内存对齐方式

菜鸟阅读 : 1920

1.首先是各编译器下sizeof()值: 32位编译器:32位系统下指针占用4字节 char :1个字节 char*(即指针变量): 4个字节(32位的寻址空间是2^32, 即32个bit,也就是4个字节。同理64位编译器) short i...

c 动态库中存在 symbol not found的问题

菜鸟阅读 : 2173评论(0)

在动态库链接的so库的文件中,只用extern 引用了其他文件中定义的变量,但是在编译的时候没有编译到库中,导致此符号在so文件中是-u的状态,真正链接使用的时候会报错,找不到符号。 解决方法就是,将对应的定义此变量的文件编译进动态库中。

栈区和堆区

菜鸟阅读 : 2483

注意,这里所说的堆区和栈区指的是(虚拟)内存区域,跟数据结构中的堆栈不一样。 栈区和堆区概念   栈区(stack)—— 由编译器自动分配释放,存放局部变量的值、函数调用所需要维护的信息等。 栈区必须满足这样一条规则:先入栈的数据后出栈(f...

linux下简易线程池

菜鸟阅读 : 1152

线程池简介    线程池是可以用来在后台执行多个任务的线程集合。 这使主线程可以自由地异步执行其他任务。线程池通常用于服务器应用程序。 每个传入请求都将分配给线程池中的一个线程,因此可以异步处理请求,而不会占用...

c 智能指针及其简单实现

菜鸟阅读 : 1079

本文将简要介绍智能指针shared_ptr和unique_ptr,并简单实现基于引用计数的智能指针。 使用智能指针的缘由   1. 考虑下边的简单代码: 1 int main() 2 { 3 int *ptr = new int(0); 4...

c 内存管理

菜鸟阅读 : 1015

内存管理是c 最令人切齿痛恨的问题,也是c 最有争议的问题,c 高手从中获得了更好的性能,更大的自由,c 菜鸟的收获则是一遍一遍的检查代码和对c 的痛恨,但内存管理在c 中无处不在,内存泄漏几乎在每个c 程序中都会发生,因...

c 虚函数表和虚函数指针机制

菜鸟阅读 : 961

虚函数的作用是实现派生类继承基类的接口和一个默认的实现 那么是如何实现这种机制的呢? 答案:通过虚函数表和虚函数指针实现。 class base_virtualfunction { public: int val; virtual void...

c 11并发——多线程std::mutex

菜鸟阅读 : 1972

mutex 又称互斥量,c 11中与 mutex 相关的类(包括锁类型)和函数都声明在 头文件中,所以如果你需要使用 std::mutex,就必须包含 头文件。

网站地图