質問: と書いてあるものがあったんですけど、3.の[.] は何故ついているのか分からないので、教えていただきたいです。
回答: `3`は整数ですが、`3.0`、そして`0`を省いた`3.`は浮動小数点数となります。 なお、このように`#define`でマクロを定義することは、思わぬ動作をする危険があります。関数で書けるものは関数で書くことをおすすめします。 ``` #define F(x) exp(x)-3.*x // 問題の出る例1 インクリメントしていた場合 int a = 3; double b = F(a++); // double b = exp(a++)-3.*a++となってしまい、複数回インクリメントされる // 問題の出る例2 演算子の優先順位 double c = F(a) / 2; // double b = exp(a)-3.*a / 2 となって、exp(a)が2で割られない // #define F(x) (exp(x)-3.*x) とすることで回避は可能 // これならそんな心配はない static inline double f2(double x){ return exp(x)-3.*x; } ```