Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/69.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C 函数指针,其签名包含一个参数,该参数的类型是指向与第一个函数指针相同类型的指针_C_Function Pointers_Typedef - Fatal编程技术网

C 函数指针,其签名包含一个参数,该参数的类型是指向与第一个函数指针相同类型的指针

C 函数指针,其签名包含一个参数,该参数的类型是指向与第一个函数指针相同类型的指针,c,function-pointers,typedef,C,Function Pointers,Typedef,我意识到我不知道正确的语法: typedef ResultType (*StateFunctionType)(StateFunctionType* currentStateFuncPtr, NewDataType newData); 那我该怎么做呢?GCC给了我 错误:未知类型名称“StateFunctionType” 我正在编写一个状态机,它使用一个函数指针跟踪当前状态,并在该状态下执行需要执行的操作 当发生此状态机之外的事情时,它们将导致调用当前状态函数,并带有说明这些外部更改的参数。有时

我意识到我不知道正确的语法:

typedef ResultType (*StateFunctionType)(StateFunctionType* currentStateFuncPtr, NewDataType newData);
那我该怎么做呢?GCC给了我

错误:未知类型名称“StateFunctionType”

我正在编写一个状态机,它使用一个函数指针跟踪当前状态,并在该状态下执行需要执行的操作

当发生此状态机之外的事情时,它们将导致调用当前状态函数,并带有说明这些外部更改的参数。有时,当前状态可能需要将当前状态更改为其他状态。起初,我将一个
this*
传递给一个结构,该结构包含一些需要更新的数据,包括当前状态函数指针,但当我细化代码时,当前状态实际需要的来自该结构的唯一数据是指向当前状态的指针,以便它可以更新它

我知道我可以通过类型转换或将
this*
留给包含状态函数指针的结构来解决这个问题,但我希望避免类型转换(让编译器对我大喊数据类型错误),我真的很困扰,我想不出如何简明扼要地写出一些概念上非常简单的东西(至少在我的脑海中是这样)。我希望我能想出一个更简洁的方式来问这个问题

(就我而言,请不要太傻)

我认为这是事实,简短的回答是“你不能,你必须打字”。