sizeof 里面的函数调用没有调用它? C++
The function call inside sizeof doesn't invoke it? C++
考虑这段代码,我正在尝试打印函数的 sizeof return 值:
int f(int);
int main()
{
std::cout << sizeof(f(2)) << std::endl;
}
令人惊讶的是(至少对我而言)打印出 4。
但是这应该给我一个 link 错误,因为函数没有定义吗?
sizoef 中的函数是否未被调用? sizeof 内部的表达式是否有更广泛的规则?
是的,根据cppreference:
When applied to an expression, sizeof does not evaluate the expression
[...]
有关未计算表达式的更多信息 here
考虑这段代码,我正在尝试打印函数的 sizeof return 值:
int f(int);
int main()
{
std::cout << sizeof(f(2)) << std::endl;
}
令人惊讶的是(至少对我而言)打印出 4。
但是这应该给我一个 link 错误,因为函数没有定义吗?
sizoef 中的函数是否未被调用? sizeof 内部的表达式是否有更广泛的规则?
是的,根据cppreference:
When applied to an expression, sizeof does not evaluate the expression [...]
有关未计算表达式的更多信息 here