也谈C语言的Struct Hack
今天在浏览网友huangz编写的“Redis源码分析”时,看到如下redis中的代码: struct sdshdr { int len; int free; char buf[]; }; 说实话,这类代码我见过很多,但直到这次我才知道这种coding trick的真实英文称谓是:Struct Hack。 到底什么是Struct Hack?其实倒也没有什么明确定义。首先它是一种coding trick;其次一定是与struct相关的;关键是struct中要仅有一个变长的字段,且该字段是struct中最后的一个字段,就像上面 sdshdr中的buf那样。这样的coding trick到底有何作用呢? ...