Messages in this thread | | | From | David Laight <> | Subject | RE: function prototype element ordering | Date | Sat, 25 Sep 2021 19:40:41 +0000 |
| |
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)
| |