Re: kernel guide to space

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 7/11/05, Michael S. Tsirkin <[email protected]> wrote:
> 
[snip]
> kernel guide to space AKA a boring list of rules
> http://www.mellanox.com/mst/boring.txt
> 
[snip]
> 
> 3c. * in types
>         Leave space between name and * in types.
>         Multiple * dont need additional space between them.
> 
>         struct foo **bar;
> 
Don't put spaces between `*' and the name when declaring variables,
even if it's not a double pointer.   int * foo;  is ugly. Common
convention is  int *foo;

> 3e. sizeof
>         space after the operator
>         sizeof a
> 

I don't think that's a hard rule, there's plenty of code that does 
"sizeof(type)"  and not  "sizeof (type)", and whitespace cleanup
patches I've done that change "sizeof (type)" into "sizeof(type)" have
generally been accepted.

[snip]
> 
> 4. Indentation rules for C
>         Use tabs, not spaces, for indentation. Tabs should be 8 characters wide.
> 
A tab is a tab is a tab, how it's displayed is up to the editor
showing the file.


[snip]
> 
> static struct foo *foo_bar(struct foo *first, struct bar *second,
>                            struct foobar* thirsd);
> 
In this example you are not consistently placing your *'s, "struct foo
*first" vs "struct foobar* thirsd". Common practice is "struct foo
*first".


[snip]
> 
>         No more than one blank line in a row.
>         Last (or first) line in a file is never blank.
> 
Files should end with a  newline. gcc will even warn (with -pedantic)
if this is not so.

"line<nl>
 line"

is wrong,

"line<nl>
 line<nl>
"

is right.


> Non-whitespace issues:
> 
> 6. One-line statement does not need a {} block, so dont put it into one
>         if (foo)
>                 bar;
> 

Not always so, if `bar' is a macro adding {} may be safer. Also
sometimes adding {} improves readability, which is important.


> 7. Comments
>         Dont use C99 // comments.
> 

s/Dont/Don't/


> 9a. Integer types
>         int is the default integer type.
>         Use unsigned type if you perform bit operations (<<,>>,&,|,~).
>         Use unsigned long if you have to fit a pointer into integer.
>         long long is at least 64 bit wide on all platforms.
>         char is for ASCII characters and strings.
>         Use u8,u16,u32,u64 if you need an integer of a specific size.

u8,s8,u16,s16,u32,s32,u64,s64


-- 
Jesper Juhl <[email protected]>
Don't top-post  http://www.catb.org/~esr/jargon/html/T/top-post.html
Plain text mails only, please      http://www.expita.com/nomime.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]
  Powered by Linux