RE: function prototype element ordering
From: David Laight <hidden>
Date: 2021-09-25 19:40:47
Also in:
linux-mm, lkml, mm-commits
From: David Laight <hidden>
Date: 2021-09-25 19:40:47
Also in:
linux-mm, lkml, mm-commits
From: Linus Torvalds
Sent: 22 September 2021 22:16
...
We don't put function return types on their own lines either, even if some other projects have that rule (just to get function names at the beginning of lines or some other odd reason).
If the function name starts at the beginning of a line it is
much easier to grep for the definition.
Trying to find function definitions in the Linux kernel tree
is a PITA - unless they are exported when 'EXPORT.*(function_name)'
will tend to work.
Trying to compile:
static int x(int y) __attribute__((section("x"))) { return y;}
with gcc generates "error: attributes are not allowed on a function-definition".
Putting the attribute anywhere before the function name works fine.
gcc probably accepts:
__inline static __inline int __inline x(void) {return 0;}
So any of those locations is plausible.
But after the arguments isn't allowed.
So an (extern) function declaration probably should not put them
there - if only for consistency.
I think I'd go for 'first' - optionally on their own line.
David
-
Registered Address Lakeside, Bramley Road, Mount Farm, Milton Keynes, MK1 1PT, UK
Registration No: 1397386 (Wales)