lkml.org 
[lkml]   [2002]   [Aug]   [18]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    SubjectGeneric list push/pop
    Date
    I took a run at writing generic single-linked list push and pop macros, to be 
    used in the form:

    push_list(foo_list, foo_node);

    and
    foo_node = pop_list(foo_list);

    They came out predictably ugly:

    #define push_list(_LIST_, _NODE_) \
    _NODE_->next = _LIST_; \
    _LIST_ =_NODE_;

    #define pop_list(_LIST_) ({ \
    typeof(_LIST_) _NODE_ = _LIST_; \
    _LIST_ = _LIST_->next; \
    _NODE_; })

    These work but imho, they are too ugly to live. For one thing, they assume
    the link field is named 'next' and I don't see a nice way around that.
    Before moving them to my scraps.c file I thought I'd let other people throw
    some tomatoes at them.

    --
    Daniel
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:28    [W:0.022 / U:91.904 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site