gpt4 book ai didi

c++ - 这个复杂声明的含义

转载 作者:搜寻专家 更新时间:2023-10-31 00:15:25 24 4
gpt4 key购买 nike

考虑以下声明:

double(*foo(double (*)(double, double[]), double)) (double, ...)  
  • 用英语描述 foo 的类型。

这是一道作业题。我的分析是:

"foo is a function pointer to a function that has as it's first argument, 
another function pointer to a function that returns a double and takes a
double and an array of doubles."

是吗?任何人都可以用英语简化和指定正确/准确的表示吗?提前致谢!

最佳答案

应用spiral rule ,记住向、向左、向右、向左等方向移动,在退出之前始终执行括号中的操作:

double(*foo(double (*)(double, double[]), double)) (double, ...)  
^^^

foo 是一个...

double(*foo(double (*)(double, double[]), double)) (double, ...)  
^------------------------------------^

foo 是一个函数...

double(*foo(double (*)(double, double[]), double)) (double, ...)  
^

foo 是一个带有指向...的指针的函数

double(*foo(double (*)(double, double[]), double)) (double, ...)  
^----------------^

foo 是一个接受函数指针的函数...

double(*foo(double (*)(double, double[]), double)) (double, ...)  
^^^^^^^^^^^^^^^^

foo 是一个函数,它接受一个指向接受 double 的函数的指针和一个指向 double 的指针(“array of double” if你想给它涂糖衣)......

double(*foo(double (*)(double, double[]), double)) (double, ...)  
^^^^^^ ^^^^^^

foo 是一个函数,它接受一个(指向一个接受 double 的函数的指针和一个指向返回 double 的指针double) 和一个 double...

double(*foo(double (*)(double, double[]), double)) (double, ...)  
^

foo 是一个函数,它接受一个(指向一个接受 double 的函数的指针和一个指向返回 double 的指针double) 和一个 double 返回指向...的指针

double(*foo(double (*)(double, double[]), double)) (double, ...) 
^-----------^

foo 是一个函数,它接受一个(指向一个接受 double 的函数的指针和一个指向返回 double 的指针double) 和一个返回函数指针的double...

double(*foo(double (*)(double, double[]), double)) (double, ...) 
^^^^^^^^^^^

foo 是一个函数,它接受一个(指向一个接受 double 的函数的指针和一个指向返回 double 的指针double) 和一个 double ,它返回一个指向接受 double 和任何东西的函数的指针......

double(*foo(double (*)(double, double[]), double)) (double, ...) 
^^^^^^

foo 是一个函数,它接受一个(指向一个接受 double 的函数的指针和一个指向返回 double 的指针double) 和一个 double,它返回一个指向接受 double 和任何返回 double 的函数的指针。

将整个内容插入 cdecl给我这个(除了它不喜欢省略号参数):

declare foo as function (pointer to function (double, array of double) returning double, double) returning pointer to function (double, ...) returning double

关于c++ - 这个复杂声明的含义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19460946/

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