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も見ています
-
新NISA制度は今までと何が変わる?非課税枠の拡大や投資対象の変更などを解説!
少額から投資を行う人のための非課税制度であるNISAが、2024年に改正される。おすすめの銘柄や投資額の目安について教えてもらった。
-
コンパイルできません。
C言語・C++・C#
-
long型の定数の末尾にLを付ける意味
C言語・C++・C#
-
#if 1 #elseの意味について
C言語・C++・C#
-
-
4
C言語での引数の省略方法
C言語・C++・C#
-
5
戻り値を返す関数の前に(void)を付ける
C言語・C++・C#
-
6
困っています。
C言語・C++・C#
-
7
0xffffとは?
C言語・C++・C#
-
8
バッファとは何ですか
C言語・C++・C#
-
9
有無、要否、賛否、是非、可否、当否…これらの言葉について
その他(教育・科学・学問)
-
10
エラーの意味は? Lvalue required
C言語・C++・C#
-
11
C言語で、メモリを解放しないで終わるプログラム
C言語・C++・C#
-
12
変数の型でlong longとunsigned long longと言うのは何ですか?
C言語・C++・C#
-
13
初級者の質問――time_tについて
C言語・C++・C#
-
14
C言語におけるif文の評価順
C言語・C++・C#
-
15
IG、ACC、+B、ILL
国産バイク
-
16
変数の前のビックリマークについて!
PHP
-
17
C言語で構造体のメンバを簡単に出力する方法ありますか?
C言語・C++・C#
-
18
unsigned int型について
C言語・C++・C#
-
19
組み込みCプログラムで実数型
C言語・C++・C#
-
20
Excelで隣のセルと同じ内容に列を並べ替える方法
Excel(エクセル)
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
C言語のサフィックスについて
-
C#のループでtextboxに値を入れ...
-
他のフォームから別のフォーム...
-
プログラムの素朴な質問です 分...
-
sublimit textっていうエディタ...
-
三項でたとえば交換って
-
VBAでcallで呼び出したsubを終...
-
テキストボックスかラベル上の...
-
Verilogの文法
-
【VBScript】変数のスコープ
-
ユーザーフォームへのデータ入...
-
Verilog-HDLによる設計において
-
VB6でClickイベントを一時的に...
-
TextBoxの内容を右寄せ
-
[Excel2000]auto_closeを止めさ...
-
String型の値にスラッシュをつ...
-
PictureBoxでのアニメーション...
-
datagridview の任意の行に三...
-
【VB.NET】テキストボックスに...
-
VBA テキストボックスで計算
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語のサフィックスについて
-
「ずっと憧れていました」は英...
-
初期化関数でmallocしたい
-
変数の型でlong longとunsigned...
-
1) A uniform ladder 10.0 m lo...
-
三項でたとえば交換って
-
VBA public変数はどのようなこ...
-
C#のループでtextboxに値を入れ...
-
VBAでcallで呼び出したsubを終...
-
他のフォームから別のフォーム...
-
レコードセットにnullの場合
-
エクセルVBAでテキストボッ...
-
Functionの戻り値を配列にした...
-
プログラムの素朴な質問です 分...
-
VB.NETでのイベントの途中終了
-
sublimit textっていうエディタ...
-
アクセスできない保護レベルエ...
-
Excel VBAでsub,dimは何の略?
-
チェックボックスを操作できな...
-
String型の値にスラッシュをつ...
おすすめ情報