我正在阅读关于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