[lkml]   [2008]   [Jan]   [24]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    SubjectRe: [PATCH 5/9] bfs: move function prototype to the proper header file
    On Jan 24, 2008, at 18:13, Dmitri Vorobiev wrote:
    > Heikki Orsila пишет:
    >> On Fri, Jan 25, 2008 at 01:32:04AM +0300, Dmitri Vorobiev wrote:
    >>> +/* inode.c */
    >>> +extern void dump_imap(const char *, struct super_block *);
    >>> +
    >> Functions should not be externed, remove extern keyword.
    > Care to explain why?
    > Following is an explanation why the contrary is probably true:
    > 1) We have lots of precedents in existing code:
    > dmvo@cipher:~/Projects/misc/linux$ git-grep 'extern void' include |
    > wc -l
    > 5523
    > dmvo@cipher:~/Projects/misc/linux$

    The "extern" keyword on functions is *completely* redundant.

    For C variables:
    Declaration: extern int foo;
    Definition: int foo;
    File-scoped: static int foo;

    For C functions:
    Declaration: void foo(int x);
    Definition: void foo(int x) { /*...body...*/ }
    File-scoped: static void foo(int x) { /*...body...*/ }

    The compiler will *allow* you to use "extern" on the function
    prototype, but the presence or absence of a function body is
    sufficiently obvious for it to determine whether the prototype is a
    declaration or a definition that the "extern" keyword is not required
    and therefore redundant.

    For maximum readability and cleanliness I recommend that you leave off
    the "extern" on the function declarations; it makes the lines much
    longer without obvious gain.

    Kyle Moffett

    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2008-01-25 02:59    [W:0.021 / U:3.644 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site