一次讲清楚结构体大小的计算
一次讲清楚结构体大小的计算 结构体大小的计算,可分为三类: 一般结构体 含有嵌套的结构体的 指定字节对齐数的结构体 在说明结构体大小计算方法之前,先介绍字节对齐。 字节对齐(Byte Alignment)在计算机系统中是一种优化机制,旨在提高内存访问的效率和系…
|
447
|
|
2759 字
|
43 分钟
GNU、MinGW、GCC、GDB、LLVM、Clang++、LLDB、cmake 傻傻分不清?
相信很多编程初学者,对以上这些常见名词都很熟悉,但都分不清楚,今天写这篇文章,一次性说清楚这些东西的作用。 GNU 首先参考wiki:https://zh.wikipedia.org/zh-cn/GNU GNU就是GNU's Not Unix!的缩写,GNU是…
|
383
|
|
4991 字
|
1 小时
linux网络编程 – 五种IO模型
IO模型大体分为如下五种: 阻塞IO模型 非阻塞IO模型 IO多路复用模型 信号驱动IO模型 异步IO模型 阻塞IO模型 在阻塞IO模式下,当应用程序发起IO操作(比如读取文件或者网络通信),如果数据没有准备好或者无法立即处理,IO操作会阻塞当前线程或进程,直…
|
350
|
|
4332 字
|
56 分钟
C++ 扩展数据结构
堆 在计算机科学中,堆是一种专门的基于树的数据结构,它本质上是一个完全二叉树,可以使用链式结构的树来实现,但是由于堆一定是完全二叉树,通常使用数组来实现。 将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。我们统称为堆序性。 常见的堆有二叉…
|
227
|
|
6048 字
|
1.4 小时
使用栈模拟实现递归
非递归实现组合型枚举 93. 递归实现组合型枚举 - AcWing题库 77. 组合 - 力扣(Leetcode) 递归 void dfs(int u, int cnt, int state) { // 1 if (cnt > k || cnt + n …
|
305
|
|
169 字
|
5 分钟
C和C++编译的四个阶段
常规操作 我们通常使用gcc/g++编译c/cpp文件,通常是使用如下一行代码 g++ -o 可执行文件.exe 源文件.cpp 但实际上这一行代码中省略了很多步骤,事实上,在编译的过程中还有很多步骤 编译中间过程 源代码通过编译器生成目标代码,目标代码通过链…
|
317
|
|
164 字
|
3 分钟
产生伪随机数及定积分计算
伪随机数 计算机是无法产生真正的随机数的,大部分程序和语言中的随机数(比如 C 中的,MATLAB 中的),都只是伪随机数。是由可确定的函数(常用线性同余),通过一个种子(常用时钟),产生的伪随机数。这意味着:如果知道了种子,或者已经产生的随机数,都可能获得接…
|
330
|
|
482 字
|
10 分钟
算法竞赛中cin/cout和scanf/printf的耗时对比
在一次无意的做题提交中,使用cin导致TLE(Time Limit Exceeded),而使用scanf没有导致TLE,而引发了我对cin和scanf的思考,由此产生了这篇文章 cin/cout和scanf/printf速度对比 在windows平台上测试会有…
|
789
|
|
1374 字
|
21 分钟
前缀、中缀、后缀表达式
前缀、中缀、后缀表达式 前缀(prefix)、中缀(infix)、后缀(suffix)表达式是对表达式的不同记法,其区别在于运算符相对于操作数的位置不同,前缀表达式的运算符位于操作数之前,中缀和后缀同理 举例: 中缀表达式:1 + (2 + 3) × 4 - …
|
304
|
|
1595 字
|
25 分钟