现在位置: 首页 > c++
2020-04-12 14:28 工业·编程 ⁄ 共 1214字 暂无评论
1 缘由 在阅读seastar源码时发现有使用pread函数,这也是第一次认识pread函数,平时用read比较多。 2 pread函数 2.1 函数原型: #include <unistd.h> ssize_t pread(int fd, void *buf, size_t count, off_t offset); ssize_t pwrite(int fd, const void *buf, size_t count, off_t offset); pread简单来说就是在指定偏移offset位置开始读取count个字节,同理可推``pwrite`。 2.2 使用示例 #include <unistd.h> #in...
阅读全文
2020-04-01 15:23 工业·编程 ⁄ 共 393字 暂无评论
怎么样才算是精通 C++?在我看来,能做到对C++语言的特性基本分类,然后根据分类正确使用它们。 对C++特性的四大分类: 1、为了兼容C语言,不得不继承下来的特性,比如#include,强制类型转换,直接内存操作,基础类型和函数系统,宏 2、为了零开销实现OOP而设计的特性,比如 class继承和派生,虚函数,函数重载 3、为了开发效率而设计的特性,比如template以及一些列stl,算符重载,auto 4、为了解决实际问题不得不向现实妥协...
阅读全文
我有近十年的游戏后端开发经验,端游,手游都做过。从我的观察而言,在决定后端技术栈选择方向时,除了编程语言自身的开发效率,库及社区的丰富和活跃程度,以及解决问题的复杂程度外,还需要非常关注: 基础设施、配套服务,以及开发人员招聘培养的难易度。 回到题主关于C++的问题。首先一些新的游戏产品,后端开发技术已经百花齐放了,jvm系,Erlang,go,Python都有。那么仍在坚持C++的原因是啥呢?我觉得有两点: 1. 历史积淀...
阅读全文
2020-03-02 11:03 工业·编程 ⁄ 共 527字 评论 1 条
精通没有标准,但学习有路径。 学习掌握C++的路径吧,从低到高,分0~10级: 0级:掌握常见C++语法和语言构造,能够顺溜地写清楚各种语言构造(很多小白鼠死在这里) 1级:掌握基本的编程范式:面向过程、面向对象、泛型编程、以及C++11/14支持的函数式编程 2级:清楚编译器在 后面干了什么(compiler under the hood-考验功力的时候到了) 3级:清楚运行时内存模型(memory under the hood) 4级:对经典库(包括但不限于STL,...
阅读全文
2020-02-28 20:53 工业·编程 ⁄ 共 1186字 暂无评论
1. 符号定义时的冲突解决方案 1.1. 名字包装. <我经常使用的一种方法> int (test)() { return 10; } // 用圆括号包装test, 编译器看到 "(test)" 和 "test" 是不一样的符号. 当然你可以使用其他的包装方式, 比如干脆就加个前缀, 比如 int my_test(){...}. 我建议还是使用圆括号来包装, 这样来包装的话, 你还是可以正常的使用 test 这个符号. 1.2. 使用宏的技术 < 这一招是从boost里面学到的, 这里...
阅读全文
2020-02-17 14:34 工业·编程 ⁄ 共 891字 暂无评论
按时间顺序说一说这三门语言的基本吧,这样比较一下儿就能知道他们的区别了。 一、C语言 C语言诞生得非常早,当时人们普遍还习惯用汇编语言编写软件,而且没有什么统一,通用的操作系统,基本上软件都是从0开始写的。C语言的目标就是比汇编方便易用,同时不要损失汇编的表达能力。所以C语言可以看成是“高级的汇编”语言。C语言的源代码基本上可以非常容易地对应到汇编代码,而且可以不需要什么运行时环境的支持。C的特点...
阅读全文
2020-02-16 14:21 工业·编程 ⁄ 共 1165字 评论 1 条
为了谈应用,先谈谈使命。模板元编程的根在模板。 模板的使命很简单:为自动代码生成提供方便。提高程序员生产率的一个非常有效的方法就是“代码复用”,而面向对象很重要的一个贡献就是通过内部紧耦合和外部松耦合将“思想”转化成一个一个容易复用的“概念”。但是面向对象提供的工具箱里面所包含的继承,组合与多态并不能完全满足实际编程中对于代码复用的全部要求,于是模板就应运而生了。 模板是更智能的宏。模板和宏都是编译前...
阅读全文
2020-02-15 14:06 工业·编程 ⁄ 共 1201字 评论 1 条
单纯地“精通C++”之后的体验是:“听过了很多道理,却依然过不好这一生。” 由于很多程序员上来接触的就是编程语言,所以以为编程语言就是计算机全部。其实不是的,就好比对于作家最重要的不是词汇量和语法知识。对于律师来说,了解法律条文也只是基本要求。对于计算机科学来说,编程语言不过是一个来和计算机沟通的工具。你精通C++,所以这个工具用起来很顺手,指挥起计算机来得心应手,然后呢?背得过新华字典,就能写得出美丽的...
阅读全文
2019-12-08 10:17 工业·编程 ⁄ 共 510字 暂无评论
1.memchr检测的是一段内存,strchr检测的是一个字符串 如果一段内存中有0x0的话,显然不能用strchr去查找的。建议看看两个函数的原型 2.strchr会停在\0,memchr不会,看接口就明白了: NAME        memchr, memrchr - scan memory for a character SYNOPSIS        #include <string.h>        void *memchr(const void *s, ...
阅读全文
2019-11-17 09:22 工业·编程 ⁄ 共 518字 暂无评论
    在C/C++中,宏定义的有效范围被规定为当前文件内有效。     “当前文件内有效”分为两种情况,一种是定义在头文件中,另一种是定义在源文件中。     1)在头文件中的宏定义,随着头文件一同被包含到源文件中时,此时宏定义在该源文件中有效,当头文件中的宏定义随着该头文件一起被包含到另一个头文件中,而这另一个头文件又被另一个源文件包含,则该宏定义在最终被包含的源文件中...
阅读全文