Style 全般
インデント
インデントはスペース4つを利用する

int main()
{
printf("Hello World!!");
}

int main()
{
printf("Hello World!!");
}
case
, default
は switch
と同じインデントレベルに書く

switch (condition) {
case condition1:
// ...
break;
default:
// ...
break;
}

switch (condition) {
case condition1:
// ...
break;
default:
// ...
break;
}
スペースの挿入
単項演算子の前後にはスペースを入れない

i++;
++i;
&pointer

i ++;
++ i;
& pointer
二項演算子と三項演算子の前後にはスペースを入れる

y = m * x + b;
c = a | b;
abs = 0 <= n ? n : -n;

y=m*x+b;
c = a|b;
abs = 0 <= n?n:-n;
構造体メンバーにアクセスするための .
, ->
の前後にはスペースを入れない。

c.re;
c->re;

c . re;
c-> re;
,
, ;
の前にはスペースを入れない。,
の後ろにはスペースを入れる。

y = m * x + b;
f(a, b);

y = m * x + b ;
f(a , b);
f(a,b);
()
の内側にはスペースを入れない。()
の外側にはスペースを入れる。

if (a * b == c) {
f(a, b);
}

if( a * b == c ){
f( a, b );
}
キーワード (予約語、識別子、リテラル) の前後にはスペースを入れる。

if (condition)

if(condition)
ただし関数名と引数を囲む (
の間にはスペースを入れない。

do_something();

do_something ();
改行
1つの行に複数の式を書かない。

x++;
y++;
if (condition)
doSomething();

x++; y++;
if (condition) doSomething();
if
, else
, for
, while
, do
, switch
と {}
は同じ行に書く。

if (condition) {
/* consequent */
} else {
/* alternative */
}

if (condition)
{
/* consequent */
}
else
{
/* alternative */
}

if (condition) {
/* consequent */
}
else {
/* alternative */
}

for (i = 0; i < MAX; i++) {
/* something */
}

for (i = 0; i < MAX; i++)
{
/* do something */
}

while (condition) {
/* do something */
}

while (condition)
{
/* do something */
}

switch (condition) {
case condition1:
// ...
break;
default:
// ...
break;
}

switch (condition)
{
case condition1:
// ...
break;
default:
// ...
break;
}

struct complex {
double re;
double im;
};

struct complex
{
double re;
double im;
};
関数の本体ブロックを囲む {}
はそれぞれ1行利用する。

int get_current_year()
{
return 0;
}

int get_current_year() {
return 0;
}