私はC++でプログラミングしており、魔法の値の代わりに静的const変数をマクロに使用したいと考えています。例では:私は変数がまだメモリ内のスペースを占有参照しかしながら静的const変数をマクロ
103ec8: e283300a add r3, r3, #10
:
static const int myx = 10;
int incbyx(int y){
return y + myx;
}
アセンブリは、直接値10を使用して生成されました。私は--symsオプションでobjdumpは使用することによって、この結論に達しました:
001059a8 l O .data 00000004 myx
変数自体が参照されることはありませんので、私は、このための必要性が表示されません。コンパイラ/リンカにデータセクションの領域を節約しないように指示することはできますか?あるいは、マクロを含まない提案がありますか?
最適化を有効にしてコンパイルしましたか? –
ビルドとリリースのデバッグまたはリリースはどのような最適化レベルですか?デバッグビルドの場合、なぜこの最適化が起こると思いますか? –
迅速な対応をありがとうございます!そして、私は両方ともdebugと-O0でコンパイルしていました。デバッグフラグを削除し、O2で問題が完全に消えた! noobの質問に申し訳ありません! – joseCM