【C言語】よくある誤字
switch文でdefaultのスペルミスはエラーにならない

warning: label ‘defalt’ defined but not used

警告:ラベル ‘defalt’ は定義されているが使用されていない
[-Wunused-label]

■1.default:の誤字はエラーにならない

#include    <stdio.h>
int     f1(int id)
{
    switch(id) {
    case    1:  return  1;
    case    2:  return  2;
    case    3:  return  3;
    //ダメ default: の誤字はコンパイルエラーにならない
    defalt:     return  4;
    }
}
int main(void)
{
    printf("%d\n",f1(4));
}

defaultの誤字はただの未使用ラベルです。
コンパイラは誤字を指摘しません。
コンパイルエラーにならないので間違いに気が付きません。
この例では return 4 を通過しないのでゴミが返却されます。


■2.未使用ラベルはエラーにならない

int     f2(int id)
{
    switch(id) {
    case    1:  return  1;
    case    2:  return  2;
    case    3:  return  3;
    //defaultの誤字は未使用ラベルになる
    unuseLabel: return  4;
    }
    return  0;
}

■3.字下げの幅が狭すぎてくっ付く

int     f3(int id)
{   //ダメ:コンパイルエラーにならない
    switch(id) {
    case1:  return  1;
    case2:  return  2;
    case3:  return  3;
    case4:  return  4;
    }
    return  0;
}

case 1:
case1:とクッツケると未使用ラベルになりますがコンパイルエラーになりません。


■4.C言語でよくある誤字 roop

[roop” C言語]で検索
⇒loopが正解です。
出荷製品にこの誤字がある場合、
適切なソースコードレビューを
入社以来一度も受けた事が無いプログラマが
コーディングした可能性があります。

[DEBAG” C言語]で検索
⇒DEBUGが正解。
DEBAGは「(いたずら、罰で)ズボンを脱がす」 の意味だそうだ

[”メモリ開放]で検索
⇒メモリ解放が正解です。
プログラムの仕様書、設計書、コード中のコメントでよく間違えています。