代码改变世界

一个泛型编程方法的妙用

2015-05-20 10:50 by 刘腾达的博客, 471 阅读, 0 推荐, 收藏, 编辑
摘要:项目用到了 Mysql,有很多相似代码,从一个表中取数据,赋值给一个结构体。将问题简化一下,如同这样: 结果集 A row_a[][128] = {"name", "20", "1000"}; 结构体 A struct A { char name[32]; ... 阅读全文

cmake新手入门教程

2015-04-28 19:04 by 刘腾达的博客, 2392 阅读, 0 推荐, 收藏, 编辑
摘要:linux 环境使用 cmake 编译大型项目1.一个简单的实例使用 cmake 编译大型项目非常方便,做个简单的记录。建立一个目录 win,这里面是工程文件。win 的目录如下: win \-- CMakeLists.txt |-- build.sh |-- libs ... 阅读全文

C++ 利用模板设计通用的消息体

2015-04-28 13:04 by 刘腾达的博客, 373 阅读, 0 推荐, 收藏, 编辑
摘要:服务器用 C++ 搞得,消息协议分两种,定长消息和变长消息。游戏的消息协议都不复杂:包头,玩家ID,玩家数据。 // 消息头 struct Base { int size; int id; Base(int _id, int _size)... 阅读全文

一个简易的C++性能分析工具

2015-04-22 11:20 by 刘腾达的博客, 495 阅读, 0 推荐, 收藏, 编辑
摘要:我们的服务器项目有好几万行代码,昨天想分析一下其性能瓶颈,看看有没可优化的地方。gcc 提供了 __PRETTY_FUNCTION__宏,放在哪个函数体内,就表示哪个函数的名字,和 __LINE__类似。利用这个宏,我们可以向每个函数体内插入几行代码,记录下被调用的 Log。我用 Python 写了... 阅读全文

游戏排行榜的一种实现

2015-04-17 10:01 by 刘腾达的博客, 2112 阅读, 0 推荐, 收藏, 编辑
摘要:游戏排行榜的一种实现我是游戏公司小猿一只,做游戏服务器开发。最近公司准备招新的 C++ 程序员,我一般都会问到一个常见的功能,一万人排行榜怎么实现。得到的答案很多,比如 “1.直接从数据库中读取;2.用 hash 表;3.用一个环形数组;4.这个问题我要仔细考虑一下。”对于这些答案我是不满意的,因为... 阅读全文