在C中将结构作为参数传递给函数
我有这个问题,不知道原因 我有这个结构在C中将结构作为参数传递给函数,c,pointers,struct,parameter-passing,C,Pointers,Struct,Parameter Passing,我有这个问题,不知道原因 我有这个结构 typedef struct { Int32 frameID; Int32 slotIndx; Int32 symNumber; } recControlList; recControlList *recControlListPtr; 数据类型是typedef 调用方函数是: Fun( recControlListPtr); 有趣的声明是 Fun (recControlList *recCon
typedef struct
{
Int32 frameID;
Int32 slotIndx;
Int32 symNumber;
} recControlList;
recControlList *recControlListPtr;
数据类型是typedef
调用方函数是:
Fun( recControlListPtr);
有趣的声明是
Fun (recControlList *recControlListPtr);
syntax error : missing ')' before '*'
如何将结构作为指针传递到函数中?请帮助您只需通过它,如在
char* xy = "HelloWorld";
if(!strcmp(xy, "HelloWorld"))
你也可以做一个
struct xy ;
functionName(&xy);
是否为函数指定了返回值?只需传递它,如
char* xy = "HelloWorld";
if(!strcmp(xy, "HelloWorld"))
你也可以做一个
struct xy ;
functionName(&xy);
是否为函数指定了返回值?声明缺少返回类型,例如:
void Fun (recControlList *recControlListPtr);
编辑:正如其他人所指出的,函数声明中的返回类型在C的某些变体中是可选的,但它的风格很好,并且由于消除歧义,它可以为您提供更好的错误消息。该声明缺少返回类型,例如:
void Fun (recControlList *recControlListPtr);
编辑:正如其他人所指出的,函数声明中的返回类型在C的某些变体中是可选的,但它的风格很好,并且由于消除歧义,它可以为您提供更好的错误消息。在声明乐趣之前,您需要有struct声明和typedef 如果所有这些都在同一个文件中,那么它们的顺序就是错误的。如果结构声明在不同的文件中,则需要在函数原型之前包含该结构 编辑:那么关于你的第二个问题
在声明乐趣之前,您需要有struct声明和typedef 如果所有这些都在同一个文件中,那么它们的顺序就是错误的。如果结构声明在不同的文件中,则需要在函数原型之前包含该结构 编辑:那么关于你的第二个问题 你可以参考这个网站。给出了通过地址将结构传递给函数的非常简单的示例程序。 我希望这对你有用。你可以参考这个网站。给出了通过地址将结构传递给函数的非常简单的示例程序。
我希望这对您有用。在C中,返回类型是可选的。您应该得到一个编译器警告,但不是错误。Alexandre,C99允许在没有返回类型的情况下进行函数声明。然后该类型默认为int。@davmac C99将删除隐式int返回类型。C99模式下的编译器应产生错误或警告。在C89中,它是fine@Alexandre您是正确的,但是您最初声称将得到一个错误是误导性的。返回类型在C中是可选的。您应该得到一个编译器警告,但不是错误。Alexandre,C99允许没有返回类型的函数声明。然后该类型默认为int。@davmac C99将删除隐式int返回类型。C99模式下的编译器应产生错误或警告。在C89中,它是fine@Alexandre你是对的,你最初声称你会得到一个错误是误导性的,然而,这似乎就是问题所在。此外,我还尝试在函数dec中使用强制struc,因为没有人对bfor注释过的标记。他们都工作。我已经在一些h文件中定义了结构,它现在包含在函数调用之前。现在我得到了不同的错误:错误:recControlList*类型的参数与recControlList类型的参数不兼容..请帮助更正[错误:recControlList*类型的参数与recControlList类型的参数不兼容]谢谢firoze!但我不理解这个概念,实际上我需要声明结构指针并需要传递给函数。我应该把它记为**而不是*?事实上,我之前误读了你的代码,认为我看到了一些我没有看到的东西。很抱歉。因此,如果希望参数是指向recControlList的指针,那么参数就是recControlList*。一开始,似乎这就是问题所在。此外,我还尝试在函数dec中使用强制struc,因为没有人对bfor注释过的标记。他们都工作。我已经在一些h文件中定义了结构,它现在包含在函数调用之前。现在我得到了不同的错误:错误:recControlList*类型的参数与recControlList类型的参数不兼容..请帮助更正[错误:recControlList*类型的参数与recControlList类型的参数不兼容]谢谢firoze!但我不理解这个概念,实际上我需要声明结构指针并需要传递给函数。我应该把它记为**而不是*?事实上,我之前误读了你的代码,认为我看到了一些我没有看到的东西。很抱歉。因此,如果希望参数是指向recControlList的指针,那么参数就是recControlList*。这是一个已经被回答过的相当古老的问题。在回答中提供链接而不提及相关部分不是一个很好的做法,因为该链接可能在将来某个时候失效。这是一个已经被回答过的相当古老的问题。在回答中提供链接而不提及相关部分不是一个很好的做法,因为该链接可能在将来某个时候失效。请看一些意见。