linux中的火花

   先小小感慨一下。。。呵呵,前段时间博客还在163的时候,每日的访问量大概在60(同学们不要笑^_^)左右,不过查看来源的时候基本上百度,google各占一半,现在来到园子,看了看最近的流量统计,几乎是清一色的百度,没想到google的离开会有如此大的影响~

   回到主题,最近在看unix高级编程,我一直都是microsoft的粉丝,不过也喜欢开源,不过总觉的windows下的编程更可控一点,现在接触linux的比较多了,才发现原来在任何时候可实现代码查看到底的编程对于许多无厘头问题的解决有莫大的好处。而且除了这个我发先linux界的程序员在某些点上确实有惊人的火花。

  大家首先看这个宏的实现:

#define offsetof(TYPE, MEMBER)  ((int)&((TYPE *)0)->MEMBER)

   宏的作用是计算成员在结构中的偏移量,该宏的具体解释是:把0看作是一个TYPE对象的地址,然后定位到他的成员MEMBER,再用&操作符返回成员的地址,然后把地址强制转化为int类型,这样结果正好是MEMBER相对于TYPE的地址。

 

   我看到这一行时,真的是由衷的感叹这名程序员的聪明才智~

   写到这里,我突然又想起microsoft中关于_countof宏的实现,那个实现将C++的模板技术用的也是淋漓尽致,尽显编程之美,读到此文的同学们可以去看看这个宏,看你是否能凭一己之力将其剖析清楚~

你可能感兴趣的:(linux)