■嫌いなブラックルール ・char/short/int/long を直接記述する事禁止する・数値を直接記述すること禁止、必ずマクロにする事・変数の宣言は関数の先頭でまとめて行い別の行で全てゼロで一律もれなく初期化する事・… 続きを読む 【C言語】
コーディング規約で
思考が止まる
ブラックルールとは?
タグ: ブラックルール
【C言語】
【C言語】
今時(C99仕様)の変数宣言と
時代遅れのとりあえず0で初期化
■時代遅れの変数宣言と初期化(非推奨) (1)変数宣言(2)とりあえず0で初期化(3)本当の値設定の3部構成からなるC89仕様時代のよくあるスタイルです。 14行目でyの初期化が漏れているので未初期化の警告が出ます。20… 続きを読む 【C言語】
今時(C99仕様)の変数宣言と
時代遅れのとりあえず0で初期化
【C言語サンプル】
根性のない電卓
■このコードは手抜きです ・ゼロ割り算をガードしていません。・1+1は出来ますが、1+1+1は出来ません・+-*/の四則演算しか出来ません・演算子が2文字以上の考慮はしていません(<<とか) ■このコードで学… 続きを読む 【C言語サンプル】
根性のない電卓
【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言語】
NULLにキャストするな!
不要なキャストを削除しよう
warning: cast from pointer to integer of different size 警告:ポインタ型を型幅の違う整数型にキャストした[-Wpointer-to-int-cast] ■memse… 続きを読む 【C言語】
NULLにキャストするな!
不要なキャストを削除しよう
【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と長い名前を付けるのは止めよう