最近在学习 PostgreSQL 的语法分析。
看到 lappend函数,其中有一句:
lappend(List *list, void *datum)
{
……
lfirst(list->tail) = datum;
……
}
lfirst 到底是什么,好神秘,函数的返回值被赋值?
看到 pg_list.h,才明白:
#define lfirst(lc) ((lc)->data.ptr_value)
原来如此。
但是令我不解的是, 这么做的目的是什么? 是一种优雅的表达?会不会引起误解?
本文转自健哥的数据花园博客园博客,原文链接:http://www.cnblogs.com/gaojian/archive/2012/09/10/2678189.html,如需转载请自行联系原作者