No.3ベストアンサー
- 回答日時:
Cで定義された予約語は小文字の int のみです。
INT は、その(おそらくはプロジェクトで)独自に定義された型になります。
さて、なぜ、紛らわしい予約語をわざわざ定義するのかですが、実は、Cにおける int は、「整数を表す型のうちで、その処理系で処理しやすいもの」としか規定がありません。
最近の Windows だと、int は 32bit 幅ですが、いずれ、64bit 幅の int を持つ処理系が出てくるかもしれません。
10年ちょっと前なら、パソコンの世界でも、int は 16bit 幅でした。
プログラムの応用によっては、このように、処理系によって int のサイズが異なる」というのは、困ったことになります。
たとえば、直接外部のハードウエアとやりとりするような機器であれば、その機器のデータサイズがたとえば、16bit に固定されていたりします。
そういうような場合に、どこかで、 INT は、16bit 幅の整数型であると定義しておきます(普通は、typedef で定義しておく)
こうすれば、現在の int が 32bit 幅でも、大昔の 16bit でも、将来 64bit になったとしても、
INT b;
と定義した変数経由であれば、安全に外部の機器とやりとりできることになります。
int は、その処理系によって、16bit だったり、32bit だったりしますが、 INT は、(あらかじめ定義すれば) 16bit 固定にできるからです。
こういう用途で、 INT とか、UINT とか、もっとハードよりだと、WORD とか BYTE とかそういう型が使われていることがあります。
また、Cの(規格で決まっているわけではありませんが)流儀として、大文字だけで構成された識別子(上記の INT など)は、「プロジェクトや処理系で個別に定義したもの」というニュアンスが漂っていたりします。
No.5
- 回答日時:
3番さんと同見解です。
typedef INT int
というコードがどこかの****.hとかのファイルで定義されているのではないかと思います。
私の仕事では
typedef signed char SINT8
typedef signed short SINT16
typedef signed long SINT32
typedef unsigned char UINT8
typedef unsigned char CHAR
typedef unsigned short UINT16
typedef unsigned long UINT32
typedef unsigned char BYTE
typedef unsigned short WORD
・・・
のような感じで、統一しています。
コーディング時に、変数の目的がわかりやすいように。
コンパイルオプションに依存しないように。
その他。
が目的だと思います。
No.4
- 回答日時:
具体的な処理系等に関する情報がないと、正確なことは分かりませんが...
すでに回答が出ているように、intはCの標準規格で規定された整数型ですが、INTというのは何の規定もありません。
普通はユーザー定義型、もしくは特定の方言で用意された予約語かもしれません。
なお、intのサイズを隠蔽するためにINT型のようなtypedef名を設けたとしても、整数拡張や既定の実引数拡張、あるいは整数定数の型を決定する上でint型のサイズが付いて回ります。
C++の場合には、多重定義の振る舞いを分かりづらくするという弊害もあります。
No.2
- 回答日時:
intは「予約語」、INTは「環境依存の予約識別子」です。
予約語は規格上既に決定されており、
識別子として使うことができませんが
予約識別子は環境によって定義されない為、
識別子として使用することができる場合もありますし
逆に言えばINTが使えない環境も存在するという事です。
個人的にはコーティング規則などであわせる以外では
無理に使うと移植性を失くすと思います。
typedefで定義された予約識別子は同意語として
定義されるため上に上げた以外に機能的な差異は
ほぼ無いと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# 宣言する関数の形が決まっている状態で、 str1とstr2の文字列をこの順に引っ付けてstrに保存し 2 2022/05/30 18:21
- Ruby パイソンプログラミング 2 2022/12/03 18:44
- C言語・C++・C# c言語配列の結合についてです。 なぜうまくいかないのでしょうか。 #include <stdio.h 4 2022/05/30 22:42
- C言語・C++・C# c言語でユーザ関数を利用して入力された文字列を反転させるプログラムを作りたいです。 3 2023/01/29 19:47
- C言語・C++・C# このプログラミング誰か教えてくれませんか 1 2022/06/02 15:27
- MySQL MYSQL エラー 2 2022/10/18 11:37
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- C言語・C++・C# 並列プログラミングのπ計算について 1 2022/07/16 22:30
このQ&Aを見た人はこんなQ&Aも見ています
-
好きなおでんの具材ドラフト会議しましょう
肌寒くなってきて、温かい食べ物がおいしい季節になってきましたね。 みなさんはおでんの具材でひとつ選ぶなら何にしますか? 1番好きなおでんの具材を教えてください。
-
人生最悪の忘れ物
今までの人生での「最悪の忘れ物」を教えてください。 私の「最悪の忘れ物」は「財布」です。
-
土曜の昼、学校帰りの昼メシの思い出
週休2日が当たり前の今では懐かしい思い出ですが、昔は土曜日も午前中まで学校や会社がある「半ドン」で、いつもよりちょっと早く家に帰って食べる昼ご飯が、なんだかちょっと特別に感じたものです。
-
2024年のうちにやっておきたいこと、ここで宣言しませんか?
2024年も残すところ50日を切りましたね。 ことしはどんな1年でしたか? 2024年のうちにやっておきたいこと、 よかったらここで宣言していってください!
-
タイムマシーンがあったら、過去と未来どちらに行く?
20XX年、ついにタイムマシーンが開発されました。 あなたは過去に行く? それとも未来? タイムマシーンにのって、どこに行って、何をしたいか教えてください!
-
char*を初期化したいのですが
C言語・C++・C#
-
CStringをwchar_tに変換したい
C言語・C++・C#
-
画面を強制的に再描画させる方法
C言語・C++・C#
-
-
4
リソースエディタでスタティックテキストの文字サイズの変更
C言語・C++・C#
-
5
VC++でコントロールの境界線を描画する方法
C言語・C++・C#
-
6
構文エラー;"が型の前にありませんとは、どうしたら解決できるのですか。"
C言語・C++・C#
-
7
MFCでOnPaintのタイミング
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
- ・漫画をレンタルでお得に読める!
- ・【大喜利】【投稿~11/22】このサンタクロースは偽物だと気付いた理由とは?
- ・お風呂の温度、何℃にしてますか?
- ・とっておきの「まかない飯」を教えて下さい!
- ・2024年のうちにやっておきたいこと、ここで宣言しませんか?
- ・いけず言葉しりとり
- ・土曜の昼、学校帰りの昼メシの思い出
- ・忘れられない激○○料理
- ・あなたにとってのゴールデンタイムはいつですか?
- ・とっておきの「夜食」教えて下さい
- ・これまでで一番「情けなかったとき」はいつですか?
- ・プリン+醤油=ウニみたいな組み合わせメニューを教えて!
- ・タイムマシーンがあったら、過去と未来どちらに行く?
- ・遅刻の「言い訳」選手権
- ・好きな和訳タイトルを教えてください
- ・うちのカレーにはこれが入ってる!って食材ありますか?
- ・おすすめのモーニング・朝食メニューを教えて!
- ・「覚え間違い」を教えてください!
- ・とっておきの手土産を教えて
- ・「平成」を感じるもの
- ・秘密基地、どこに作った?
- ・【お題】NEW演歌
- ・カンパ〜イ!←最初の1杯目、なに頼む?
- ・一回も披露したことのない豆知識
- ・これ何て呼びますか
- ・初めて自分の家と他人の家が違う、と意識した時
- ・「これはヤバかったな」という遅刻エピソード
- ・これ何て呼びますか Part2
- ・許せない心理テスト
- ・この人頭いいなと思ったエピソード
- ・牛、豚、鶏、どれか一つ食べられなくなるとしたら?
- ・好きなおでんの具材ドラフト会議しましょう
- ・餃子を食べるとき、何をつけますか?
- ・あなたの「必」の書き順を教えてください
- ・ギリギリ行けるお一人様のライン
- ・10代と話して驚いたこと
- ・大人になっても苦手な食べ物、ありますか?
- ・14歳の自分に衝撃の事実を告げてください
- ・家・車以外で、人生で一番奮発した買い物
- ・人生最悪の忘れ物
- ・あなたの習慣について教えてください!!
- ・都道府県穴埋めゲーム
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
2重定義って??
-
visualstudio C# テキストボッ...
-
long型の定数の末尾にLを付ける...
-
関数の実体定義にヘッダファイ...
-
C++ クラスをメンバにもつクラ...
-
C++のfor文について
-
構造体を引数とする、クラス間...
-
C++のコンストラクタを宣言する...
-
inline
-
値を返り値に返すのと参照渡し...
-
C++でboolにintの値を代入する...
-
クラスのメンバ関数を別ファイ...
-
変数の型を定義しなかった場合...
-
64bit → 32bit型へのキャスト
-
waveout関数を使うと「○○は一度...
-
引数で argc argvが使用され...
-
スレッドのスケジューリングポ...
-
main.c:7:43: warning: implici...
-
LNK2019: 未解決の外部シンボル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
DWORDの実際の型は何でしょうか
-
C++のfor文について
-
2重定義って??
-
visualstudio C# テキストボッ...
-
long型の定数の末尾にLを付ける...
-
typedef enumの使い方を教えて...
-
C++でboolにintの値を代入する...
-
プログラムの中で別のmainを呼...
-
構造体の要素すべてに対する四...
-
変数の型を定義しなかった場合...
-
intとINTの違いは?
-
main.c:7:43: warning: implici...
-
【#define】 defineで定義した...
-
構造体の宣言でエラーが出ます。
-
関数の実体定義にヘッダファイ...
-
ハンドルされていない例外が発...
-
void func( void )について
-
エラー「invalid conversion fr...
-
sshdログの意味
-
C言語での方向キー入力判定
おすすめ情報