【C言語】
コーディング規約で
思考が止まる
ブラックルールとは?

■嫌いなブラックルール ・char/short/int/long を直接記述する事禁止する・数値を直接記述すること禁止、必ずマクロにする事・変数の宣言は関数の先頭でまとめて行い別の行で全てゼロで一律もれなく初期化する事・… 続きを読む 【C言語】
コーディング規約で
思考が止まる
ブラックルールとは?

【C言語】
今時(C99仕様)の変数宣言と
時代遅れのとりあえず0で初期化

■時代遅れの変数宣言と初期化(非推奨) (1)変数宣言(2)とりあえず0で初期化(3)本当の値設定の3部構成からなるC89仕様時代のよくあるスタイルです。 14行目でyの初期化が漏れているので未初期化の警告が出ます。20… 続きを読む 【C言語】
今時(C99仕様)の変数宣言と
時代遅れのとりあえず0で初期化

【C言語】
ヨーダ記法は
昭和のウサギ跳びと同じ臭い
今は-Werrorオプションで
if(x=0)のバグを防ごう

warning: suggest parentheses around assignment used as truth value  警告:真偽値として使用するなら代入式にカッコつける[-Wparentheses] ■… 続きを読む 【C言語】
ヨーダ記法は
昭和のウサギ跳びと同じ臭い
今は-Werrorオプションで
if(x=0)のバグを防ごう

【C言語】
早期リターンvs関数出口1つ

■1.早期リターンは読みやすい(推奨) コーディング規約 「関数の出口1つだけ」を強要するプロジェクトは多いです。 しかしこのルールを守った読みやすいコードを見たことがありません。 規約を強要する人は是非ともリーダブルコ… 続きを読む 【C言語】
早期リターンvs関数出口1つ

【C言語】0を無理にマクロにするとかえってマジックナンバーになる

■1.間違った理解・正しい理解 ●間違った理解マジックナンバーとは裸の数字の事である。マクロは裸の数字ではないのでマジックナンバーではない。●正しい理解マジックナンバーとは意味のわからない数字の事である。 ■2.無理に0… 続きを読む 【C言語】0を無理にマクロにするとかえってマジックナンバーになる

【C言語サンプル】
今時の Hello world!
(C89/90を捨てC99へ移行)

c99仕様のC言語ではmain 末尾の return 0 は書かなくてもOK! C89仕様のC言語:30年以上前の古い仕様 gcc hello.c -Wall -std=c89 でコンパイルするとgccにmain のre… 続きを読む 【C言語サンプル】
今時の Hello world!
(C89/90を捨てC99へ移行)

【C言語】
局所変数のループカウンタにloop_counterと長い名前を付けるのは止めよう

■1.長い名前は本当に分かりやすいですか? ↑↓これは間違いだ! 【保守の事を考えると”変数名”に意味のない名前を与えると後でわからなくなる。多少面倒でも後で見て何を意味している変数なのかわかるよ… 続きを読む 【C言語】
局所変数のループカウンタにloop_counterと長い名前を付けるのは止めよう