在不调用的情况下计算函数:解开谜团
想象一下:您正在编码,而不是调用带括号的函数,您只需打印它的名称即可。令人惊讶的是,结果总是 1。这种非常规的方法让您感到困惑,无论是关于 1 还是缺少预期的函数指针。
让我们深入研究代码的复杂性:
#include
using namespace std;
void pr()
{
cout 与您的意图相反,您实际上并未在 cout
为了增强您的理解,请考虑在打印之前使用 cout
虽然 C 11 提供了一个优雅的解决方案:
template
std::ostream & operator此重载允许您打印任意数量的函数指针,显示函数指针的地址及其参数数量等信息。
所以,您已经知道了:神秘的 1 是这不仅仅是巧合,而是隐式类型转换的结果。了解这种行为对于避免意外结果和编写更健壮的代码至关重要。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3