标签: C

14 篇文章

一次讲清楚结构体大小的计算
一次讲清楚结构体大小的计算 结构体大小的计算,可分为三类: 一般结构体 含有嵌套的结构体的 指定字节对齐数的结构体 在说明结构体大小计算方法之前,先介绍字节对齐。 字节对齐(Byte Alignment)在计算机系统中是一种优化机制,旨在提高内存访问的效率和系…
linux网络编程 – 五种IO模型
IO模型大体分为如下五种: 阻塞IO模型 非阻塞IO模型 IO多路复用模型 信号驱动IO模型 异步IO模型 阻塞IO模型 在阻塞IO模式下,当应用程序发起IO操作(比如读取文件或者网络通信),如果数据没有准备好或者无法立即处理,IO操作会阻塞当前线程或进程,直…
C++ 扩展数据结构
堆 在计算机科学中,堆是一种专门的基于树的数据结构,它本质上是一个完全二叉树,可以使用链式结构的树来实现,但是由于堆一定是完全二叉树,通常使用数组来实现。 将根结点最大的堆叫做最大堆或大根堆,根结点最小的堆叫做最小堆或小根堆。我们统称为堆序性。 常见的堆有二叉…
C和C++编译的四个阶段
常规操作 我们通常使用gcc/g++编译c/cpp文件,通常是使用如下一行代码 g++ -o 可执行文件.exe 源文件.cpp 但实际上这一行代码中省略了很多步骤,事实上,在编译的过程中还有很多步骤 编译中间过程 源代码通过编译器生成目标代码,目标代码通过链…
产生伪随机数及定积分计算
伪随机数 计算机是无法产生真正的随机数的,大部分程序和语言中的随机数(比如 C 中的,MATLAB 中的),都只是伪随机数。是由可确定的函数(常用线性同余),通过一个种子(常用时钟),产生的伪随机数。这意味着:如果知道了种子,或者已经产生的随机数,都可能获得接…
算法竞赛中cin/cout和scanf/printf的耗时对比
在一次无意的做题提交中,使用cin导致TLE(Time Limit Exceeded),而使用scanf没有导致TLE,而引发了我对cin和scanf的思考,由此产生了这篇文章 cin/cout和scanf/printf速度对比 在windows平台上测试会有…
前缀、中缀、后缀表达式
前缀、中缀、后缀表达式 前缀(prefix)、中缀(infix)、后缀(suffix)表达式是对表达式的不同记法,其区别在于运算符相对于操作数的位置不同,前缀表达式的运算符位于操作数之前,中缀和后缀同理 举例: 中缀表达式:1 + (2 + 3) × 4 - …