Re: Coding style on function signatures (was: Convert tasklets towork queues )
From: Randy Dunlap
Date: Sun Jul 08 2007 - 00:34:35 EST
On Sat, 07 Jul 2007 18:49:07 -0600 Jim Cromie wrote:
> Linus Torvalds wrote:
> >
> >
> > Yes, code should be less than 80 characters wide.
> >
> > But hey, sometimes it's just more readable to have one line that is
> > slightly longer than it should be, than to split something that is awkward
> > to split.
> >
> >
> < cc-list heavily trimmed >
>
>
> could you speak to the specific case of function signatures ?
> I saw nothing in CodingStyle specifically about this.
> (I skimmed, and grepped for signature)
>
> forex:
>
> static ssize_t
> store_fan_div (struct device *dev, struct device_attribute *devattr,
> const char *buf, size_t count)
> {...}
>
>
> IIRC, many like the entire sig on one line, because its grep friendly.
> I personally like the above, but grep-ability is hard to argue against.
(I expect that "you" above means Linus, but anyway...)
Some people like the above so that the function name can be grepped
using a "^store_fan_div" regex, but that's not good enough reason
for it for others, including Linus, IIRC. We have other tools
to find where functions are.
> The above has 2 violations (of strict-grep-ability rule)
> 1 - return sig is separate
> 2 - arg-list is split
#2 can't be helped unless someone is willing to go way beyond the
80-or-so column limit.
I would write that function sig like so:
static ssize_t store_fan_div(struct device *dev,
struct device_attribute *devattr,
const char *buf, size_t count)
Some people would add spaces on lines 2 & 3 so that all of the
function parameters are aligned. I don't care very much one way
or the other about that.
---
~Randy
*** Remember to use Documentation/SubmitChecklist when testing your code ***
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/