红联Linux门户
Linux帮助

linux C 开发中最重要的数据结构结构体

发布时间:2008-01-05 16:30:34来源:红联作者:Agreed
在linux的驱动开发中,最常用的,也最重要的数据结构是结构体,它也最容易使人混淆。要掌握结构体,首先要弄明白运算符的优先级:

在所有运算符中,下面4个运算符的优先级是最高的:结构体运算符“.”和“->”、用与函数调用的“()”以及用于下标的“[]”,因此它们同操作数之间的结合也最紧密。

例如对:

struct {
int len;
char *str;
}*p;

表达式
++p->len :增加len的值,其中的隐含括号关系是++(p->len)
(++p)->len: 先执行p的加1操作,再取len的值
(p++)->len: 先取len的值,再执行p的加1操作
*p->str: 取指针str所指向的对象的值
*p->str++:先取指针str所指向的对象的值,然后将str加1
(*p->str)++:先取指针str所指向的对象的值,然后将对象值加1
*p++ ->str:先取指针str所指向的对象的值,然后将P值加1
文章评论

共有 3 条评论

  1. znlyj 于 2011-05-17 00:32:10发表:

    嗯嗯。。。

  2. lijiang 于 2011-05-10 20:48:59发表:

    [i=s] 本帖最后由 lijiang 于 2012-1-9 22:37 编辑 [/i]

    拜读了 ,真得很重要,帮助我们区分了

  3. niutao0602 于 2008-01-05 16:55:56发表:

    的确。在内核中大量的结构体数据。