
No.2ベストアンサー
- 回答日時:
マクロ定数には型はないですが、プリプロセッサで解釈されるときに
型が問題になります。
X3010(CのJIS規格) §6.1.3.2では「整数定数の型はその値を
表現できる最初(int以上の小さい型から最初)の型とする」となってます。
だから#define A 1と書くと、解釈時にAの型はintになり、
intで表現できない数を書くとlong intになります。
その値を使って計算をすると、結果が異なってくる可能性があります。
(たとえば、long intだと桁あふれのしない計算が、intだとあふれるとか)
その数値がunsigned long intであることが必要ならば、
数値の最後にULをつけることで型を指定できます。
#define A 1UL
No.1
- 回答日時:
#defineで定義するマクロ定数(記号定数)には型はありません。
ソースコードに
#define AA 1
a=AA;
のように書くと、コンパイル時にプリプロセッサで
a=1;
のように置換されるのです。
http://naruzo.cside1.com/html/online/ckouza/ckou …
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
有効数字について 以前質問をし...
-
VB.net Double と...
-
c languageで 簡単な質問があ...
-
ExcelでPC(パソコン)によって...
-
O(n log n)について2
-
2進数の足し算(C言語)
-
VBAでミリ秒まで出力する方法
-
引き算で端数が出る理由
-
対数から真数に
-
変換指定子%22-16gの表示...
-
floatの有効桁数
-
三角関数、逆三角関数の算出方...
-
Double型について
-
VB6.0での小数点の扱いについて
-
【C言語】RGBと輝度の計算に関して
-
三菱シーケンサ(Aシリーズ)で...
-
どんな数字を入力してもaverage...
-
除算を使わずに10で割りたい。
-
ExcelのINT関数の計算結果がお...
-
”/”を使わずに割り算したいんで...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
有効数字について 以前質問をし...
-
c languageで 簡単な質問があ...
-
ExcelでPC(パソコン)によって...
-
O(n log n)について2
-
2進数の足し算(C言語)
-
16進数 加算 減算 C言語
-
EXCELの関数"STDEV(標準偏差)"...
-
三菱シーケンサ(Aシリーズ)で...
-
VB.net Double と...
-
MATLABでの行列の全要素の和
-
除算を使わずに10で割りたい。
-
floatの有効桁数
-
”/”を使わずに割り算したいんで...
-
ExcelのINT関数の計算結果がお...
-
VBAでミリ秒まで出力する方法
-
VB6.0での小数点の扱いについて
-
Fortran において変数の定義
-
計算の丸め誤差の解消について
-
C言語について質問です。
-
CRCの計算方法について
おすすめ情報