• 匿名 struct 的前向声明

    C/C++ 中的前向声明经常用于当头文件中的接口参数为指针时,做前向声明而非引用头文件。

  • CMake 基本用法介绍

    最近着手把部门项目从手写 makefile 改为了 cmake 构建,由于之前使用了不知道哪年哪个不一定在职的员工写了一个貌似通用的构建框架,每个模块内部写一个 makefile.d 并 include 公共 makefile,然后使用一个 python 脚本调用 make -f 来执行最终的构建,虽然也 work,但是非常 ugly。改为 cmake 之后一是构建逻辑更加清晰,二是能够指导优化代码结构。本文主要介绍一些常用的 cmake 命令,并列举一些有助于学习 cmake 的资源。

  • 捍卫代码质量 —— git 篇

    我之前有篇文章讲了 git 的各种命令,是为了在需要的时候方便查看。本篇我想从实际的工作场景出发,来看看如何通过更合理地使用 git,来提高我们的工作效率以及代码质量。

  • Google Summer of Code Organizations of 2019

    GSoC 2019 已经结束,https://summerofcode.withgoogle.com/organizations 会列出当年的所有组织,因此有必要对 2019 年的组织做一个备份,下图使用 firefox 的 Take a Screenshot 生成的。

  • Make Easy Tutorial

    虽然现在很多时候都不用手写 Makefile 了,例如 Autotoolscmakesconsqmake 等,都是很好的构建系统。但能够读懂 Makefile 在很多时候是非常必要的,因此本文列举一些基本的 Makefile 要点,方便笔者在需要的时候参考。

  • 半小时总结一下阿里中间件比赛

    机缘巧合之下了解到阿里天池有个 POLARDB数据库性能大赛,但是今年的赛程还没开始,在官网上又看到了正在进行中的中间件性能挑战赛,于是报名参加,了解一下比赛的流程,为后面的数据库性能大赛趟趟路。

  • Lamport Timestamps

    Lamport timestamps 是一种在分布式系统中获取全序关系(total ordering)的简单算法。

  • Sublime Text 中的常用快捷键

    在华为工作了近一年的时间,由于大多数时间在写 C,用到最多的编辑器就是 Source Insight,虽然函数调用关系的展示真的牛逼,但多少还是感觉太重了,还是 ST 好用,适合作为各种语言的编辑器。本文列举一些 ST 常用的快捷键。

  • Core Dumps

    操作系统可以配置为当某个程序因进程终止信号(如 segmentation fault)而崩溃时,生成 core dump 文件。这个核心转储文件包含进程终止时的内存快照。可以使用 gdb 加载该文件,查看程序崩溃时的状态,这在调试中非常有用。

  • GDB 命令快速参考

    本文是 Summary of GDB commands for x86-64 Systems 的人肉翻译 📝。并在 Reference 处列出了一些 gdb 的在线文档。

  • 函数中最多定义多少个参数是合理的

    依稀记得毕业面试的时候有考官问过: 函数最多定义多少个参数是合理的 ? 印象中当时是回答了四个,但也只是凭感觉猜的,没有什么根据。

  • C 语言头文件11条

    一个大型C语言项目中的头文件应该包含什么内容?想必做C/C++开发的程序员都有过这样的疑问。密歇根大学的EECS 381课程中的C Header File GuidelinesC++ Header File Guidelines 是两个不错的总结。如下11条规则摘取自 C Header File Guidelines