2010-09-23 53 views
3

根據msdn在VC是什麼的#pragma當量/ O2編譯選項的(優化速度)

/O2(最大化速度)

相當於

/噩/ OI/OT/Oy公司/ OB2/GS/GF /戈瑞

和根據msdn再次,下面的編譯指示

#pragma optimize(「[優化列表]」,{on | off})

在其「優化列表」中使用與/ O編譯器選項相同的字母。有關編譯可用字母是:

  • - 啓用全局優化。
  • p - 提高浮點一致性。
  • s或t - 指定機器碼的短序列或快序列。
  • y - 在程序堆棧上生成幀指針。

我應該使用哪些與/ O2具有相同的含義?

回答

2

From the docs

  1. /噩使全局優化
  2. /愛產生適當的函數調用的內在功能。
  3. /Ot(默認設置)告訴編譯器優化速度優化大小優化。
  4. /Oy禁止在調用堆棧上創建幀指針以實現更快速的函數調用。
  5. /OB2擴展標記爲直列或__inline和該編譯器選擇

/G選項是不嚴格的優化任何其他功能的功能,使得留給我們克&噸,加上#pragma intrinsic(2) ,#pragma auto_inline(對於5)和可能#pragma inline_depth

0

我不認爲有直接的等值。

的#pragma優化( 「GTY」,截止)

應該取消的文件,大部分項目一級/ O2的效果,但

的#pragma優化( 「GTY」,上)

只是說「使用編譯器開關」,所以你需要/ O2或/ Og/Ot/Oy。

我找不到/ G部分的編譯指示,他們做優化'喜歡'的東西。