- mongodb - 在 MongoDB mapreduce 中,如何展平值对象?
- javascript - 对象传播与 Object.assign
- html - 输入类型 ="submit"Vs 按钮标签它们可以互换吗?
- sql - 使用 MongoDB 而不是 MS SQL Server 的优缺点
我知道内联函数要么在被调用的地方被替换,要么表现得像一个普通函数。
但是我如何知道内联函数是否在被调用的地方实际被替换,作为将内联函数视为内联的决定是在编译时?
最佳答案
在运行时以编程方式,您不能。
而事情的真相是:你不需要知道
编译器可以选择inline
没有标记inline
的函数或者忽略显式标记inline
的函数,这完全是希望(读智慧) & 你应该相信编译器会明智地完成它的工作。大多数主流编译器都会很好地完成他们的工作。
如果您的问题纯粹是从学术角度来看,那么有几个选项可供选择:
您可以检查汇编代码以检查函数代码是否在调用点内联。
如何生成汇编代码?
对于 gcc:
编译时使用 -S
开关。
例如:
g++ -S FileName.cpp
生成的汇编代码被创建为文件FileName.s
。
对于 MSVC:
使用 /FA Switch 从命令行。
在生成的汇编代码中查找是否有针对特定函数的call
汇编指令。
如果某些编译器未能遵守内联函数请求,它们会发出警告。
例如,在 gcc 中,如果编译器没有内联声明为内联的函数,-Winline
命令选项将发出警告。
检查 GCC documentation 了解更多详情:
-Winline
Warn if a function that is declared as inline cannot be inlined. Even with this option, the compiler does not warn about failures to inline functions declared in system headers.
The compiler uses a variety of heuristics to determine whether or not to inline a function. For example, the compiler takes into account the size of the function being inlined and the amount of inlining that has already been done in the current function. Therefore, seemingly insignificant changes in the source program can cause the warnings produced by
-Winline
to appear or disappear.
关于c++ - 我如何知道内联函数是否在被调用的地方被实际替换?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10631283/
按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实、引用或专业知识的支持,但这个问题可能会引发辩论、争论、投票或扩展讨论。如果您觉得这个问题可以改进并可能重新打开,visit the
操作无法完成。 Places API 库中发生内部错误。如果您认为此错误代表错误,请使用我们社区和支持页面 (https://developers.google.com/places/support)
我正在尝试在我的项目中使用 google places,我将其设置在 fragment 中而不是 Activity 中,我的自动完成 fragment 在 fragment 中。但是,当我尝试搜索它时
我的目的是使用R来查询google api。 我有一个地址和名称列表(属于商店、餐馆等),我需要为每个地址和名称存储: “纬度”、“经度”、“业务类型” 我的想法是使用 google place ap
我正在寻找设置一个自动完成的谷歌地方小部件。 我有一个带有“searchFieldText”id 的输入类型文本。 这是我的 JS 代码: var inputsec = document.getEle
是否可以使用图形 API(或地址/ zip )按纬度/经度和半径获取地点?我在文档中的任何地方都看不到它 最佳答案 搜索 URL 的以下格式将返回某个位置附近的地点列表: https://graph.
我正在探索 Google API,主要是 Places API。由于对 Google Places API 的请求数限制为 100,000,因此我正在寻找方法来最大限度地减少发送到 API 的请求数。
伙计们,我在我的应用程序中有一个功能,可以使用 GetFiles 在特定目录中搜索特定文件。方法 System.IO.Directory.GetFiles(string path, string
我已经在 Laravel 5.3 上使用 where 查询成功创建了许多函数,但是这次发生了一些奇怪的事情。 public function show($id){ $artikel = Art
我正在为我的 iPhone 应用程序使用 Facebook 图形 API 来获取附近地点的列表,我使用带有一些参数的“搜索”请求。我得到的响应是一个包含以下信息的地点列表:“纬度”、“经度”、“名称”
我有一个 Android 应用程序,我在其中使用 Google map 显示附近的地方,如加油站、药店等。我正在使用 map 和地点 API。 https://maps.googleapis.com/
我是一名优秀的程序员,十分优秀!