面试
道格拉斯范朋克
中间件
展开
-
面试C++基础知识
编译源文件从文本到可执行文件过程源文件,从文本到可执行文件一般需要四个过程:预处理阶段:对源代码文件中文件包含关系(头文件)、预编译语句(宏定义)进行分析和替换,生成预编译文件。编译阶段:将经过预处理后的预编译文件转换成特定汇编代码,生成汇编文件汇编阶段:将编译阶段生成的汇编文件转化成机器码,生成可重定位目标文件链接阶段:将多个目标文件及所需要的库连接成最终的可执行目标文件...原创 2020-03-04 10:56:49 · 244 阅读 · 0 评论 -
cv(const 与 volatile)类型限定符与final对比
C++:可出现于任何类型说明符中,以指定被声明对象或被命名类型的常量性(constness)或易变性(volatility)。const——定义类型为常量。 volatile——定义类型为易变。JAVA:final:final 修饰形参,作用跟const作用类似。 修饰成员变量,必须定义时赋值,赋值后变量内容不可改变。如果是引用,不可改变的是引用,不是引用的内...原创 2020-01-02 18:02:25 · 264 阅读 · 0 评论 -
从read函数到零拷贝
操作系统分为“用户态”和“内核态”,文件操作、网络操作需要涉及这两种形态的切换,免不了进行数据复制,一台服务器把本机磁 盘文件的内容发送到客户端 一般分为两个步骤:1 ) read(file, tmp buf, len);,读取本地文件内容;2) write(socket, tmp_buf, len);,,将读取的内容通过网络发送出去。tmp_buf是预先申请的内存,这两个看似简单的操作,...原创 2020-01-07 16:53:17 · 418 阅读 · 0 评论 -
Static的作用
C++: 链接性 作用域 存储性 全局静态变量 static修改标识符的链接属性,由默认的external变为internal 作用域和存储类型不改变,这些符号只能在声明它们的编译单元中访问 静态存储区 局部静态变量 链接属性不变 作用域不变 static修改标识符的存储类型,由自动变量改为静态变量 静态函数 内部链接性...原创 2019-12-30 18:55:30 · 140 阅读 · 1 评论 -
Offsetof宏详解
C语言面试的时候可能会考,这样的宏定义:#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER)函数作用:计算结构体成员的偏移,有些自有代码里也会手写这样的代码,实际上这个函数是标准实现的。实际上如果我们浏览 ANSI C 编译器的标头文件,将在 stddef.h 中遇到这样奇怪的宏。这个红具有可怕的声明。此...原创 2019-11-19 11:34:45 · 5489 阅读 · 1 评论 -
TCP/IP协议三次握手与四次握手流程解析
一、TCP报文格式 图1 TCP报文格式上图中有几个字段需要重点介绍下: (1)序号:Seq序号,占32位,用来标识从TCP源端向目的端发送的字节流,发起方发送数据时对此进行标记。 (2)确认序号:Ack序号,占32位,只有ACK标志位为1时,确认序号字段才有效,Ack=Seq+1。 (3)标志位:共6个,即URG、ACK、PSH、RST、SYN、FIN等,具体含义如转载 2016-09-06 16:05:15 · 293 阅读 · 0 评论 -
C++经典面试题之---String类
这个在面试或笔试的时候常问到或考到。已知类String的原型为:class String{public: String(const char *str = NULL);// 普通构造函数 String(const String &other); // 拷贝构造函数 ~ String(void); // 析构函数 String & ope转载 2016-04-14 15:30:36 · 2386 阅读 · 0 评论 -
strcpy与memcpy的实现与区别
今天遇到一个问题。本来自己存的一个数据块是char *,使用strcpy拷贝到另一个char*指针后,发现接收端数据不对。使用memcpy正常。仔细查找发现问题。当存储的数据中含有0或者“\0”的数据时,使用strcpy会出错。strcpy只拷贝字符串,遇到\0就不再拷贝,与自己的预想不符,strcpy还容易发生越界的问题。 面试的时候也经常会遇到让你写这些标准库函数的具体实现,其实在v原创 2017-02-13 22:55:30 · 1181 阅读 · 0 评论