質問: C言語についての質問です。 #defineで宣言した変数は、 どのようなデータ型になるのでしょう? 思うような値が出ずに、printf文を使って中身を確認したいのですが、 %dなのか%lfなのか、混乱してしまいました。 ご教授いただけるとありがたいです。
回答: defineはコンパイル前に文字が置き換わるだけの機能です。 #define VAL = 1 << 8; のように計算式を書くことができます。 if( data < VAL) が if( data < 1 << 8) のように展開出来ます。 ですので1とやればintですし、2.2はfloat、 1+1 は 1+1になります。 注意として #define ADD 1+1 val = ADD * 2: は4ではなく 3になります。 これはコンパイルする前(計算する前)に展開しているからです。