我最近遇到了以下深奥的代码.
int main(){(([](){})());}
Run Code Online (Sandbox Code Playgroud)
按如下方式重新格式化以使其更具可读性:
int main(){
(([](){})()); // Um... what?!?!
}
Run Code Online (Sandbox Code Playgroud)
但我无法理解如何(([](){})())
有效的代码.
谷歌对这种全符号搜索没有多大帮助.但它在Visual Studio 2010中编译并且不输出任何内容.没有错误,也没有警告.所以它看起来像有效的代码.
我从未见过任何在Javascript和C函数指针之外如此奇怪的有效代码.
有人可以解释这是如何有效的C++?
我记得曾经看过一个网站,它破译了复杂的C++ typedef,包括函数指针,返回函数指针返回一个带有...的数组.
它会将这些定义变成可读的英文文本:»指向函数的指针,返回一个int指针数组,取一个long和一个回调函数(取一个int)作为参数«.(沿着那条线)
typedef int * (*f)(long, void (*)(int))[];
Run Code Online (Sandbox Code Playgroud)
有人还记得那个工具/网站吗?任何提示都非常感谢
我是C的新手,我很难阅读这行代码并理解它:
typedef void (*getnxtbyte_t)(void *stream);
Run Code Online (Sandbox Code Playgroud)
从环顾四周,我现在知道它是指向一个函数的指针.但任何人都可以帮助我进一步澄清这一点吗?这种新型号的名称是什么?它指向什么功能?是函数的参数(void* stream)
吗?
提前致谢!