Andru Asked:2020-06-14 19:04:09 +0800 CST2020-06-14 19:04:09 +0800 CST 2020-06-14 19:04:09 +0800 CST 变量的类型是什么? 772 有一个变量 struct { short kto; int prichital; char tot; } (*(*(*a)))()()(); 变量的大小是多少以及如何对其进行解码? c 1 个回答 Voted Best Answer αλεχολυτ 2020-06-14T19:39:44+08:002020-06-14T19:39:44+08:00 根据顺时针规则,以及cdecl.org网站,变量a为: 一个指向一个指向函数的指针的指针,该函数返回一个函数,该函数返回一个函数,该函数返回一个命名的未命名结构。 因为 在 C 中,禁止从函数返回函数(而不是指向它的指针),则此代码无效。 错误:“a”声明为返回函数的函数 为了使它有效,你需要返回一个指向函数的指针,它会变成这样: struct { ... } (*(*(*a)())())(); 同时,结构的无名性也带来了自身的局限性。指针被声明了,但是用一些有用的东西来初始化它是有问题的。 从语言的角度谈论一些无效的实体的大小是根本不可能的。好了,还原成编译后的形式,就可以使用sizeof.
根据顺时针规则,以及cdecl.org网站,变量
a
为:因为 在 C 中,禁止从函数返回函数(而不是指向它的指针),则此代码无效。
为了使它有效,你需要返回一个指向函数的指针,它会变成这样:
同时,结构的无名性也带来了自身的局限性。指针被声明了,但是用一些有用的东西来初始化它是有问题的。
从语言的角度谈论一些无效的实体的大小是根本不可能的。好了,还原成编译后的形式,就可以使用
sizeof
.