一、可变长参数介绍 某些情况下为了完成一些功能,需要用到可变长参数的函数,例如我们最常用的printf和scanf函数: [crayon-660656cd9a018075445638/] 它们首先都是...
do-while(0)在宏定义中的作用
do { ... } while(0)是C/C++中常见的定义方式,使用它构造后的宏定义不会受到大括号、分号等的影响,总是会按你期望的方式调用运行。 一、错误引出 以下宏定义: [crayon-660...
C/C++中常见的宏
一、判断编译器是C或者C++ 通过__cplusplus判断C/C++: [crayon-660656cd9b528689506585/]
代码格式化工具astyle的安装和使用
astyle是一个代码格式化工具,为C,C++,JAVA等语言提供代码格式化功能。 官方描述为:Artistic Style is a source code indenter, formatter,...
c++调用lua错误集锦
一、luaL_dofile(): cannot open ./lib.lua: No such file or directory 问题原因 运行应用的目录和lua文件不在同一个目录,.lua文件所在...
面试题:转换十六进制字符串到十六进制数据
前几天面试时候遇到的问题: 给定一个十六进制字符串"AB",转换成十六进制的整数0xab输出。 临时接到的面试通知,赶场子过去一坐下就给个题目,说实话面试了一两个星期是第一次做这方面的面试题。没有思想...
vector中reserve和resize的区别
reserve方法用来给vector预留空间,预留的空间只会改变capacity的大小,不会改变size大小。resize方法表示重新调整数组大小,capacity和size都会改变。 使用reser...
几个golang面试题及解析
一、以下代码的输出内容为 [crayon-660656cd9e4e8557536838/] 答案 [crayon-660656cd9e4f1503453577/] 解析 考查defer和panic组合...
多态的原理:vptr指针和vtable虚函数表
多态是C++中的重要内容,也是设计模式的基础。 形成多态的几个基本条件为: 继承和虚函数 父类对象指向子类对象 多态形成的原理就是vptr指针和vtable虚函数表,当一个类中有虚函数时,编译器就会自...
socket多路IO复用之select模型
select模型是socket中的一种多路IO复用模型之一,通过轮询的方式来完成多路访问控制。 一个很简单的例子来描述select模型: 幼儿园老师要照顾所有的小朋友,每天他都会轮流去问小朋友:“小朋...
22