我看到一些代碼,是這樣的只有調用另一個函數的函數會減慢速度嗎?
int *func2(int *var) {
//Do some actual work
return var;
}
int *func1(int *var) {
return func2(var);
}
int main() {
int var;
var = func1(&var);
return 0;
}
這似乎是一個令人難以置信的浪費給我,但我想通了中間功能以前可能有兩個功能,它可以致電或有一些擴展計劃未來。我只是想知道像gcc這樣的編譯器是否可以檢測到這種事情,並消除實際程序中的無用功能,或者如果這種事實際上在運行時會浪費CPU週期?
你問關於gcc具體還是一個理論問題 - 編譯器能做到嗎? – amit 2012-02-06 23:42:35
是的,我在Mac和一些Linux機器上使用gcc。但我總的來說很好奇,因爲我真的很新奇,想知道是否爲了保持低水平而做大量的功能是個好主意。 – chinakow 2012-02-07 02:29:47