gpt4 book ai didi

c - 这个复杂的 C 类型声明是什么意思?

转载 作者:行者123 更新时间:2023-12-05 09:27:24 26 4
gpt4 key购买 nike

在我所在的编程社区中,有人将这颗绝对的手榴弹扔进了聊天室:

this is a valid function declaration in c

void* volatile* (*func(unsigned long const long volatile int, signed, long*[*][42]))(__int128* (*) (int* restrict const[static restrict const 17]));

我们中的一些人曾尝试破译这个声明,但还没有人有任何运气。

最佳答案

如果将函数声明表示出来会更容易理解函数声明

void* volatile* (*func(unsigned long const long volatile int, signed, long*[*][42]))(__int128* (*) (int* restrict const[static restrict const 17]));

使用 typedef。

第一个可以是下面的

typedef _int128* FunctionAsParameter(int* restrict const[static restrict const 17]);

第二个如下

typedef void* volatile* FunctionAsReturnType( FunctionAsParameter * );

最后原始函数声明看起来像

FunctionAsReturnType * func( unsigned long const long volatile int, signed, long*[*][42]);

这就是函数的返回类型 func 是一个指向函数的指针,它有一个参数,而这个参数又是指向函数的指针。

关于c - 这个复杂的 C 类型声明是什么意思?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72439921/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com