error: unknown type name の原因と直し方
型名の大文字小文字を間違えたときに出るエラーです。intをIntと書いてしまうなど、キーボードの打ち間違いで起きがちです。
エラーメッセージの読み方
main.c:4:5: error: unknown type name 'Int'; did you mean 'int'?
main.c- ファイル名
4- 行番号
5- 列番号 — この位置でgccが構文解析に失敗しました
unknown type name 'Int'; did you mean 'int'?- 内容 — 期待していたもの、または受け付けられなかったもの
このエラーが出る典型パターン
パターン1
1 #include <stdio.h> 2 3 int main(void) { 4 Int x = 5; ^ 5 printf("%d\n", x); 6 return 0; 7 }
main.c:4:5: error: unknown type name 'Int'; did you mean 'int'?
Cの組み込み型はすべて小文字です。大文字始まりのIntという型名は存在しません。
直し方: Int を int にします。
広告
広告スロット(未設定)
パターン2
1 #include <stdio.h> 2 3 int main(void) { 4 Double price = 9.99; ^ 5 printf("%.2f\n", price); 6 return 0; 7 }
main.c:4:5: error: unknown type name 'Double'; did you mean 'double'?
他の言語の型名の綴りに引きずられて大文字で書いてしまう典型的なミスです。Cのdoubleは常に小文字です。
直し方: Double を double にします。
パターン3
1 #include <stdio.h> 2 3 int main(void) { 4 Char grade = 'A'; ^ 5 printf("%c\n", grade); 6 return 0; 7 }
main.c:4:5: error: unknown type name 'Char'; did you mean 'char'?
gccは似た名前の既知の型を候補として提示してくれます(did you mean 'char'?)が、あくまで提案であり自動修正はされません。
直し方: Char を char にします。
よくある誤解
Javaなど型名が大文字始まりの言語に慣れていると、Cでも同じ感覚で書いてしまいがちです。Cの組み込み型(int・char・doubleなど)はすべて小文字で、大文字小文字を区別します。
まとめ
error: unknown type nameは初級でつまずきやすい項目です。上の3パターンを実際に手で直すと、エラーメッセージのどこを読めばよいかが掴めます。