我正在閱讀關於C++中的內聯函數,大部分我理解的是編譯器會複製粘貼內聯的函數代碼。如果一個內聯函數包含一個return語句,並且該函數在某個其他函數中使用,它是否會導致調用者函數終止並返回?在C++中的內聯函數中返回語句是否會實際返回並終止代碼流?
例如,考慮
inline int foo(void) {
return 1;
}
int bar(void) {
//Some statements
foo()
//Some more statements
return 2;
}
將禁止前foo()
在bar(
)回報達到return 2;
行,因爲代碼被編譯器複製粘貼?否則,如何在內聯函數中處理return語句?我明白,現在不會破壞代碼流,但如果代碼是複製粘貼或內聯的,則如何處理return語句?
在這種情況下,行爲與內聯無關。 – EdChum 2014-09-22 10:19:40
不會。這意味着如果某個函數被內聯,代碼的行爲將會發生變化,並且這會使內聯變得毫無用處/危險。 – juanchopanza 2014-09-22 10:20:19