【发布时间】:2021-05-20 01:29:56
【问题描述】:
我从https://en.cppreference.com/w/cpp/language/scope 得到了这个声明,但即使下面有评论也不知道如何解析这个声明。
我的问题是 如何解析声明语句(我将其视为指向函数协议的函数指针,如“int[3] foo(int n)”或“int foo(int n)[3] --- 它们在 C++ 中是非法的) ? 那么,如何构造一个具体的函数来分配给这个函数指针呢?谢谢。
const int n = 3;
int (*(*f2)(int n))[n]; // OK: the scope of the function parameter 'n'
// ends at the end of its function declarator
// in the array declarator, global n is in scope
// (this declares a pointer to function returning a pointer to an array of 3 int
【问题讨论】:
-
您可以使用像cdecl.org 这样的网站,它可以帮助将乱码 c 翻译成可读的英语
-
找到写这篇文章的人,打他们的后脑勺。
-
@3Dave:后脑勺一记耳光不太可能对作者产生影响。他们显然是一名 C 开发人员,所以考虑到他们已经忍受了那种语言的痛苦,他们甚至不会感到这样的打击 :-) 而且,对于所有 C 开发人员,请不要生气。我曾经也是一个。但我恢复了:-)
-
@paxdiablo “嗨。我叫 Dave,是一名 C 程序员。” (人群回答)“嗨,戴夫。”
标签: c++ function-pointers