函数或 if 语句的C++ "searches"如何?

How C++ "searches" for functions or else if statements?

本文关键字:searches 如何 C++ if 语句 函数      更新时间:2023-10-16

假设我在C++程序中有 200 个函数。每次调用一个,程序如何找到函数?这是线性搜索吗?二叉搜索?

如果 a 有一个包含 200 个else ifif/else if/.../else语句,程序会逐个搜索它们吗?如果是这样,我该如何提高这里的性能?

在编译的二进制文件中,函数调用只是带有地址的指令call,即函数所在的位置。所以程序不需要找到函数。它只是已经知道函数的地址并跳转到它。

对于else if语句,程序只测试每个条件。正如您在评论中建议的那样,在某些情况下,switch可能是一种优化,但建议(由我)不要依赖它。仅当它使您的代码更清晰时才使用它。

if-else if-else 条件逐个计算,直到条件匹配。您也许能够优化特定的用例,但在一般形式中,您必须逐个检查它们。