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も見ています
-
「どうして捨てられないの?」前妻の物を捨てられない男性の心理って?
前妻の物を捨てられない理由に加え、捨てるための手段はあるのかを専門家に聞いてみた!
-
コンパイルできません。
C言語・C++・C#
-
long型の定数の末尾にLを付ける意味
C言語・C++・C#
-
困っています。
C言語・C++・C#
-
-
4
戻り値を返す関数の前に(void)を付ける
C言語・C++・C#
-
5
0xffffとは?
C言語・C++・C#
-
6
C言語での引数の省略方法
C言語・C++・C#
-
7
有無、要否、賛否、是非、可否、当否…これらの言葉について
その他(教育・科学・学問)
-
8
初級者の質問――time_tについて
C言語・C++・C#
-
9
変数の型でlong longとunsigned long longと言うのは何ですか?
C言語・C++・C#
-
10
リファレンス電圧
物理学
-
11
Enterキーを押されたら次の処理に移るという事をしたい。
C言語・C++・C#
-
12
変数の前のビックリマークについて!
PHP
-
13
unsigned int型について
C言語・C++・C#
-
14
組み込みCプログラムで実数型
C言語・C++・C#
-
15
#include <Windows.h>というヘッダファイルについて
C言語・C++・C#
-
16
数値Lについて
C言語・C++・C#
-
17
intとlongは同じ?
C言語・C++・C#
-
18
バッファとは何ですか
C言語・C++・C#
-
19
C言語 列挙型(enum型)変数について
C言語・C++・C#
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のサフィックスについて
-
[vb.net] 起動したFrom2を閉じ...
-
VBA public変数はどのようなこ...
-
C#のループでtextboxに値を入れ...
-
他のフォームから別のフォーム...
-
GetNextWindowがDLLファイルUse...
-
[Excel2000]auto_closeを止めさ...
-
アクセスできない保護レベルエ...
-
エクセルVBAでテキストボッ...
-
comboboxのクリックイベントに...
-
VB.NETでのイベントの途中終了
-
ユーザーフォームへのデータ入...
-
画像処理について。(移動)
-
VBAのユーザーフォームで、テキ...
-
基本的な質問で本当に申し訳あ...
-
画像をランダムに表示させたい...
-
subsequentとnextの違いってな...
-
VBSのプログラム
-
条件に該当したテキストボック...
-
画像処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のサフィックスについて
-
変数の型でlong longとunsigned...
-
「ずっと憧れていました」は英...
-
Excel にて変数の宣言の仕方
-
C言語の変数の並べ方について教...
-
C言語で32Bit*32Bitの演算は出...
-
初期化関数でmallocしたい
-
アドレスp (char *p) からの連...
-
動的配列の受け渡しについて
-
VBA public変数はどのようなこ...
-
他のフォームから別のフォーム...
-
C#のループでtextboxに値を入れ...
-
エクセルVBAでテキストボッ...
-
VBAでcallで呼び出したsubを終...
-
VB.NETでのイベントの途中終了
-
ドラゴン曲線を再帰で書く
-
Functionの戻り値を配列にした...
-
アクセスできない保護レベルエ...
-
VBAで入力数値について
-
プロシージャまたは関数の引数...
おすすめ情報