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)