gpt4 book ai didi

c++ - 内联函数原型(prototype) vs 常规声明 vs 原型(prototype)

转载 作者:太空狗 更新时间:2023-10-29 20:06:26 25 4
gpt4 key购买 nike

inline function 和 then main 的区别是什么:

inline double cube(double side)
{
return side * side * side;
}

int main( )
{
cube(5);
}

vs 只是像这样定期声明一个函数:

double cube(double side)
{
return side * side * side;
}

int main( )
{
cube(5);
}

vs 函数原型(prototype)?

double cube(double);

int main( )
{
cube(5);
}

double cube(double side)
{
return side * side * side;
}

最佳答案

inline 函数可以在多个翻译单元(cpp 文件 + 包含)中定义,并提示编译器将函数内联。它通常放在 header 中,这会增加编译时间,但可以产生更快的代码。它还允许从许多编译单元使用该函数。

//cube.h
inline double cube(double side)
{
return side * side * side;
}

//cube.cpp
int main( )
{
cube(5);
}

定期定义它是常规方法,它(通常)在 cpp 文件中定义并链接。它不容易从其他编译单元使用。

//cube.cpp
double cube(double side)
{
return side * side * side;
}

int main( )
{
cube(5);
}

原型(prototype)允许您告诉编译器一个函数将在链接时存在,即使它还不存在。这允许 main 调用函数,即使它还不存在。通常,原型(prototype)位于 header 中,因此其他编译单元可以调用该函数,而无需自己定义。这具有最快的编译时间,并且该功能很容易从其他编译单元使用。

//cube.h
double cube(double);

//cube.cpp
int main( )
{
cube(5);
}

double cube(double side)
{
return side * side * side;
}

关于c++ - 内联函数原型(prototype) vs 常规声明 vs 原型(prototype),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7922340/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com