ホームページ  >  に質問  >  本文

c++ - “编译过程中若发现使用常量则直接以符号表中的值替换”与“const 可以节省空间,避免不必要的内存分配”是否矛盾?

大家讲道理大家讲道理2765日前648

全員に返信(1)返信します

  • PHP中文网

    PHP中文网2017-04-17 15:38:57

    比較に使用した 2 つのステートメントはどちらも議論の余地があります。

    コンパイラは、コンパイル時の定数を命令に折り畳んで、スタックにメモリをまったく割り当てない可能性があります。複数の同一の定数を 1 つに結合してデータ セグメントに配置することも可能です。このような決定を下すには、コード全体を分析する必要があり、決定に影響を与える要素には、define と const だけではありません。

    tldr: コードを見てコンパイル結果を推測しないでください。唯一信頼できる比較方法は objdump です。

    返事
    0
  • キャンセル返事