将结构传递给C中的参数

时间:2010-11-04 11:14:41

标签: c pointers struct parameter-passing

我遇到了这个问题并且不知道原因

我有这个结构

typedef struct 
{

    Int32   frameID;
    Int32   slotIndx;
    Int32   symNumber;

}   recControlList;


    recControlList  *recControlListPtr;

数据类型是typedef。

来电者功能是:

Fun( recControlListPtr);

有趣的宣言是

Fun (recControlList *recControlListPtr);


syntax error : missing ')' before '*'

如何将结构作为指针传递给函数?请帮忙

4 个答案:

答案 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/网站。给出了通过地址传递结构的非常简单的示例程序。 我希望这对你有用。