ゆとりーなの日記

日記的な事を書いて行くと思はれる

余裕でかかってました

かかってました。新型インフルです。流石に5人もの感染者と接触してればうつりますよね。
なんでも書類を書かなければいけないとか何とかで、そのための紙を印刷するのにFireFoxでPDFを開こうとしたらフリーズするわフリーズ。グーグル先生に訊いてみてもよくわからないので取り敢えず放置してます。
流石にずっと寝てるのも暇なんでちょっと本を読みたくなるのが人の世の常。その時読んだ本に次のような内容を見つけました。

  • ローカル変数を必ず初期化するという規約はやりすぎ。そんな心に余裕のない人たちとは仕事したくない。

体調悪い中読んでいたので間違っているかもしれませんが、当時の私が要約した内容をそのまま書くとこれになります。つまりGoogleスタイルは無理ということです。
最初なんでこんなにローカル変数の初期化を嫌がるのかと思ったものです。警告もでるし。でもよく考えたらこの内容C言語の話として載っていたのでその点を踏まえると少し納得できるようになりました。この規約を守ると次のようなコードを書かなければいけなくなるわけです。

int i = 0;

for (i = 0; i < 10; ++i) {
//色々やる
}

for (i = 0; i < 30; ++i) {
//もっと色々やる
}

最初の初期化は全くの無駄です。最初のforループの初期化をなくせば無駄はなくなりますが、形が気持ち悪いです。C++だとfor分のところで変数宣言できてしまうので気にならないのですが。
他にもC言語では変数宣言を関数の頭に纏めなければいけないので、関数の中盤で初期値が取れる場合なんかにも最初の宣言のところで初期化するのが嫌になるかもしれません。C++だと途中での変数宣言余裕でしたなのでその場合もその場所で宣言して初期化しましょうが出来るし推奨されている節すらあります。C99・・・。