[英]Performance difference between unary and binary operator
-foo
和(-1)*foo
之間實際上存在性能差異,其中foo
是int
類型的變量嗎? 理論上,一元運算符應該更快。 但是我認為編譯器會對此進行優化。
-foo
和(-1)*foo
之間實際上存在性能差異-foo
從理論上講可以。 C ++標准對此不做任何保證。
但是,假設foo
類型是整數,則這些表達式的可觀察行為之間絕對沒有區別。 因此,在這種情況下,允許編譯器為每個表達式生成相同的二進制程序。 理想的優化程序應生成性能更好的程序。
真正的編譯器是否為兩個程序生成相同的輸出是另一回事-沒有真正的編譯器是理想的。 您可以通過使用兩個替代程序的編譯器,然后比較輸出來找出。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.