- AVRマイコン総合スレ Part41
759 :774ワット発電中さん[sage]:2019/03/19(火) 01:03:40.16 ID:7rOv8Vut - >>756
基本は、関数だけど。 スタック消費を避けたいときと、処理速度を上げたいときは、マクロも検討します。 ただ、デバッグが面倒になるときと、マクロの副作用もあるので慎重に。
|
- AVRマイコン総合スレ Part41
762 :774ワット発電中さん[sage]:2019/03/19(火) 13:10:38.66 ID:7rOv8Vut - >>761
コンパイラの吐いたコード見て、思わずマクロにすることはありますね。 パラメタの数だけ、スタック退避されてビビル。 コンパイラの最適化によるけど、参照だけなら const つけるとか、 あえて、パラメタ変数をグローバルで宣言するとかもあるけど メモリ許せば、マクロかな〜 ケースバイケースで、指示が無い限りは、センスに任せるっていったところか。
|
- AVRマイコン総合スレ Part41
764 :774ワット発電中さん[sage]:2019/03/19(火) 16:09:39.38 ID:7rOv8Vut - >>763
avrgccに限らずって話ですよ。 コンパイラの最適化もあるし、 ポインタ渡しにしたら、変数アクセスごとに、インデクスレジスタを 更新しますからね、当たり前の話ですけど。 そのオーバーヘッドとコード領域の増加を避けたいこともあるのです。
|