看来我可以在 block 范围内声明一个函数:
int main()
{
void f(); // OK
}
但是我无法定义它:
int main()
{
void f() {}; // ERROR
}
我的问题是, block 范围内的函数声明有什么用?什么是用例?
最佳答案
它有时是声明和调用外部链接函数的快捷方式,该函数本身并未在 header 中公开定义。例如,假设您正在链接一个 C 库,您知道它提供了一个 LibDebugOn(int)
调用,但没有在 header 中定义它。它可以是在一个地方声明和调用它的快捷方式:
void myFunc() {
// call "Lib" but turn on debugging via hidden API
extern "C" void LibDebugOn(int); // declare hidden C-linked function
LibDebugOn(1); // call it
// do something with the library here...
LibDebugOn(0); // turn off lib debugging now
}
公平地说,这通常只对一次性快速破解是值得的,而不是值得鼓励的事情。
关于c++ - block 范围内 C++11 函数声明的用例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16704256/