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

■1.長い名前は本当に分かりやすいですか?

#include <stdio.h>
int main(void){
    char    buffer[27]={0} ;
    /* 自動変数宣言 */
    int loop_counter;
    /* 自動変数初期化 */
    loop_counter = 0 ; 

    for(loop_counter = 0 ; 
            loop_counter < 26 ;
                loop_counter = loop_counter + 1){
        buffer[loop_counter] = 'A' + loop_counter ; 
    }
    
    puts(buffer);
}

↑↓これは間違いだ!


保守の事を考えると”変数名”に意味のない名前を与えると後でわからなくなる。
多少面倒でも後で見て何を意味している変数なのかわかるようにする。
エディタの補完機能を使って、すべての変数に長い名前を付ける事。
ループカウンタであろうと i や jやk を使用することを禁止する。


●文脈にかかわらず 局所変数にloop_counter のような長い変数名を付けるのは間違いです。
●ループカウンタのような局所変数の名前は i,j,kで十分です。
●なんでもかんでも長い名前を強制する上司や先輩は
リーダブルコードもプログラミング作法も読んでいません。


■2.局所変数は有効範囲に応じて短くてもOK

#include <stdio.h>
int main(void){
    char    buf[27]={0} ;
    for(int i = 'A'; i <= 'Z' ;i++){
        buf[i - 'A'] = i ; 
    }
    puts(buf);
}

「明解さは簡潔さによってもたらされる」プログラミング作法より


■3.でもループカウンタに l (エル)は止めよう

●1 l(エル)は1(壱)と紛らわしいです for(int l = 1;l<10;l=l+1)
●2 l(エル)はi,j,kの次の4重ループを示唆しているので構造が複雑になっていませんか?


■4.参考文献とサイト

(1) 書籍 プログラミング作法、
(2) 書籍 リーダブルコード
(3) Linux カーネル コーディング規約