i++は++iより遅いのか?
cppcheckが性能の問題で後置演算子をやめるように言ってきます。
なぜ?と思ったので、調べてみたら、、、、
こちらに書いてありました。
https://stackoverflow.com/questions/24886/is-there-a-performance-difference-between-i-and-i-in-c
// Prefix
Integer& Integer::operator++()
{
*this += 1;
return *this;
}
// Postfix
const Integer Integer::operator++(int)
{
Integer oldValue = *this;
++(*this);
return oldValue;
}
Prefix increment:
a = ++b + c;
; increment b
LD A, [&b]
INC A
ST A, [&b]
; add with c
ADD A, [&c]
; store in a
ST A, [&a]
Profix increment:
a = b++ + c;
; load b
LD A, [&b]
; add with c
ADD A, [&c]
; store in a
ST A, [&a]
; increment b
LD A, [&b]
INC A
ST A, [&b]
前の記事:cppcheck、それから | 次の記事:Intel MPX機能を調べていたら、、、 |
新着情報
2021.03.16
2021.02.26
2021.02.24
2021.02.22
2021.01.19
2021.01.04
2020.12.29
2020.12.28
2020.12.24
2020.12.23
コメントする