【C言語】
ループカウンタに長い変数名は不要-効率的な命名法と注意点-

■この記事の概要

この記事では、C言語でループカウンタの変数名に長い名前を使うべきでない理由を解説しています。

特にloop_counterのような冗長な名前は避け、ijのような短い名前が推奨されています。

さらに、混乱を招くl(エル)の使用や、タイポによるroopといった不適切な名前の例も挙げています。

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

#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で十分です。
●なんでもかんでも長い名前を強制する上司や先輩は
リーダブルコードもプログラミング作法も読んでいません。


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

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

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


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

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


■ループカウンタに roopは止めよう

●roopでなくてloopでしょう。

YAHOOの知恵袋で検索すると出るわ出るわ


参考文献とサイト

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