我遇到了这个问题并且不知道原因
我有这个结构
typedef struct
{
Int32 frameID;
Int32 slotIndx;
Int32 symNumber;
} recControlList;
recControlList *recControlListPtr;
数据类型是typedef。
来电者功能是:
Fun( recControlListPtr);
有趣的宣言是
Fun (recControlList *recControlListPtr);
syntax error : missing ')' before '*'
如何将结构作为指针传递给函数?请帮忙
答案 0 :(得分:3)
你需要在声明Fun()之前获得struct声明和typedef。
如果所有这些都在同一个文件中,则它们的顺序错误。如果在不同的文件中声明结构,则需要在函数原型之前#include它。
编辑:关于你的第二个问题......
答案 1 :(得分:2)
声明缺少返回类型,例如:
void Fun (recControlList *recControlListPtr);
(编辑:正如其他人所指出的,函数声明中的返回类型在C的某些变体中是可选的,但它的样式很好,并且由于消除歧义,它可以为您提供更好的错误消息)。
答案 2 :(得分:0)
你只需传递它,例如在
中char* xy = "HelloWorld";
if(!strcmp(xy, "HelloWorld"))
你也可以做一个
struct xy ;
functionName(&xy);
您是否为功能指定了返回值?
答案 3 :(得分:0)
您可以参考http://fresh2refresh.com/c/c-passing-struct-to-function/网站。给出了通过地址传递结构的非常简单的示例程序。 我希望这对你有用。