質問: ### int や float の typedef について C++のコードを見てるとint型をINTと表記していたりするのをよく見かけます。 興味があり調べてみたのですが、、、 > > #### **Wikipedia** > > > 「typedefの使い方はプログラマーが用意にソースコードを理解・記述できるようにすることが目的である。 > > > と書かれていました。 この使い方だけであればINTと新しく名前を用意せずともintと書いたほうがシフトキーを押す手間が省けますし、ずっと効率的な気がします。(他の言語から来た人にも変な疑問を持たせないで済みます) なぜあえてtypedefでint型の名前を新しく記述して、それを使うのでしょうか?
回答: こんにちは。 > > 「typedefの使い方はプログラマーが用意にソースコードを理解・記述できるようにすることが目的である。 > > > 主な目的はその通りです。C++はテンプレートがあるので、型に別名を付けたいことが多数あります。 次の例はまだ単純な方ですが、このような定義したいことが結構あります。 ``` typedef std::vector > Array2DInt; ``` 他に、処理系の相違を吸収するため、次のような定義ファイルを処理系毎に用意して適切な方をインクルードすることもあります。 ``` // int型が4バイトの処理系 typedef int int32_t; // int型は2バイトだが、long型が4バイトの処理系 typedef long int32_t; ``` さて、`typedef int INT;`は正直見たことはないですし、無意味なだけでなくコードを読む人を混乱させるので害がそこそこ有る割に益はあまりないと思います。