【C言語】
strstr関数で駄目な変数名やコメントを検索する

こんな変数名はダメ プログラミングの NGワード こんなコメントもダメ

駄目な変数名

➡while(roop)
入社以来一度もレビューを受けていない

➡for(int loop_counter=0;
局所変数でもなんでもかんでも長い名前

➡int 何とか2;
info2,data2,flag2等の付加情報を持たない変数名の乱用
そもそも
情報でない変数とか
データでない変数とか、あるか?

駄目なコメント

➡/* 多分はずかも*/
確認していない。自信のない。

➡//開放
筆者経験で100%「解放」の間違い

strstr関数を使ったNGワード検索プログラム

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
//日本人が書いたソースコードのレビューツール
//問題のありそうなコードを手っ取り早く見つける
//使い方:
//  $./a.out  ../*/*.c ../*/*/*.c 

struct {
    const char  *駄目語;  
    int         減点;       //点数が高いほど駄目
} 駄目語録[]={
    //駄目な変数名
    {"roop",            1000},  //誤字⇒一度もレビューを受けていない
    {"loop_counter",    200},   //局所変数に長い名前は読みにくい   
    
    //付加情報を持たない変数名
    // これらの変数名は読み手には意味が無い。
    //”何とか2”があるという事は”何とか1”もあり
    {"var2",            10},          
    {"info2",           50},
    {"data2",           100},
    {"flag2",           500},
    {"tmp2",            10},        
    
    //駄目なコメント
    {"Todo",            10},    //受け入れ試験直前で残っているのはオカシイ
    {"多分",            50},    //断定してください
    {"はず",            50},    //断定してください
    {"かも",            50},    //断定してください
    {"開放",            200},   //誤字:X資源の開放⇒〇資源の解放 
    
    {NULL,              0}
};
static int 行検索(char *source){
    int 減点 = 0 ;
    for(int i = 0; 駄目語録[i].駄目語 != NULL;i++){
        if(strstr(source,駄目語録[i].駄目語)){
            減点 += 駄目語録[i].減点 ;
            printf("\t%4d点:%-16s\t:%s",
                駄目語録[i].減点,
                駄目語録[i].駄目語,
                source
            );
        }
    }
    return  減点 ;    
}
static int ファイル検索(char *filename){
    FILE *fp = fopen(filename,"r");
    if(fp == NULL){
        perror(NULL);
        exit(1);
    }
    int 減点 = 0;
    char    source[BUFSIZ];
    while(fgets(source,BUFSIZ,fp) != NULL){
        減点 += 行検索(source);
    }
    fclose(fp);
    return  減点 ;
}
int main(int argc,char *argv[]){
    if(argc < 2){
        printf("Usage:./a.out f1.c f2.c ....\n");
        exit(1);
    }
    for(int i = 1;i < argc;i++){
        printf("▼解析開始:t%s\n",argv[i]);

        int 減点 = ファイル検索(argv[i]);
        if(減点){
            printf("%d点 %s の解析終了▲\n",減点,argv[i]);
        }
    }
}

駄目語録[]の単語は開発環境で異なります。
ご自身の環境に応じて追加削除してください。

参考:「はず/かも」チェック