
No.2ベストアンサー
- 回答日時:
C言語規格書(JISX3010)の
6.4.4.1 整数定数
6.4.4.2 浮動小数点定数
に記述があります。
わかりやすいサイトも参考にリンクを載せます。
http://www9.plala.or.jp/sgwr-t/c/sec13.html
の「13-4.定数の修飾」
接尾辞を指定しない場合、整数定数の10進定数の場合
・int
・long int
・long long int
の順で、解釈されます。
単に 10 と記述すれば int の範囲内であるため int型の定数になります。
intの範囲外の値である場合、long intの範囲内であればlong int型の定数に、
long intの範囲外であれば、long long intの範囲内であればlong long int型で扱われます。
long long intの範囲外であればエラーがでるのかな。
ここで、たとえば
long int i = 0;
と記述すると、int型定数からlong int型に代入するため内部的にキャストが行われるんではないでしょうか?
だったら最初から
long int i = 0L;
としておいた方が効率がよさそうです。
また、関数の引数でlong intを欲しているときも同様です。
void hoge(long int i);
hoge(10); よりも hoge(10L);
(C++になると型に五月蠅くなるので、接尾辞をつけないとエラーになるケースもある。)
なるほど!あらかじめ代入される変数と代入する定数の型を合わせておけば処理が早くなるんですね。
サフィックスの有り無しで代入の速度がどう変わるか実験してみたのですが(unsigned longの変数に10と10ULを代入した際の速度の差)、結果はどちらも変わりませんでした。最近のコンパイラは最適化がんばってくれてるんですね。ということは、最近のコンパイラではサフィックスの意味はあまりないかも・・・?
意味がわかってすっきりしました。回答ありがとうございました!
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# C言語初心者 構造体 課題について 2 2023/03/10 19:48
- IT・エンジニアリング c言語とjavaの需要について 3 2022/06/23 22:59
- 哲学 日本語は 言語類型として あたかも始原のごとくである 3 2022/05/29 04:41
- デスクトップパソコン 古ーいパソコン/Atheros AR2181 PCIe Gigabit LAN コントローラー 7 2022/09/07 12:58
- その他(開発・運用・管理) 「ネット検索だけでは十分な情報が得られません」 と言ったような内容の言葉をよく聞きます。 なぜ得られ 7 2022/04/26 09:39
- 英語 口頭での"the following..."の可否等について 6 2022/08/19 01:01
- 哲学 《太郎ハ花子ガ好きだ》構文から《象は鼻が長い / 僕はウナギだ / コンニャクは太らない》へ 1 2022/05/30 08:48
- C言語・C++・C# C言語初心者 構造体 課題について 1 2023/03/10 19:30
- TOEFL・TOEIC・英語検定 補語はどこですか 1 2022/06/14 13:29
- Excel(エクセル) Excelヘルプの原文を表示する最速の方法(手順)には? 1 2023/08/11 11:30
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のサフィックスについて
-
VBA public変数はどのようなこ...
-
チェックボックスを操作できな...
-
C#のループでtextboxに値を入れ...
-
エクセルVBAでテキストボッ...
-
ClickとChangeイベントの違いは...
-
SavePictureで保存できない
-
Excel VBAでsub,dimは何の略?
-
RichTextBoxで指定行の色を自動...
-
VB6でマウスのドラッグで範囲を...
-
演奏記号の・・・・
-
アクセスできない保護レベルエ...
-
String型の値にスラッシュをつ...
-
VB.NETでのイベントの途中終了
-
ピクチャボックスの使用方法
-
texで図と表を並べたい
-
dvioutで数式が表示できません
-
visual basic初心者です。 visu...
-
【VB.NET】テキストボックスに...
-
C#を勉強していて、指定したフ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のサフィックスについて
-
C言語で32Bit*32Bitの演算は出...
-
変数の型でlong longとunsigned...
-
初期化関数でmallocしたい
-
「ずっと憧れていました」は英...
-
アドレスp (char *p) からの連...
-
VBA public変数はどのようなこ...
-
C#のループでtextboxに値を入れ...
-
アクセスできない保護レベルエ...
-
エクセルVBAでテキストボッ...
-
チェックボックスを操作できな...
-
【VB.NET】テキストボックスに...
-
他のフォームから別のフォーム...
-
VB.NETでのイベントの途中終了
-
visual basic初心者です。 visu...
-
VBAで入力数値について
-
ユーザーフォームへのデータ入...
-
レコードセットにnullの場合
-
String型の値にスラッシュをつ...
-
VBAでcallで呼び出したsubを終...
おすすめ情報