Struct作为函数类型

时间:2016-07-16 13:30:14

标签: c struct typedef declaration

我想从一个标题中的一个结构中调用一个对象,我在其中有一些数据类型,让我清楚一点。ft_stock_par.h是标题的名称。

typedef struct s_stock_par
{
    int size_param;
    char *copy;
}   t_stock_par;

然后我有主要功能,我想从中调用对象t_stock_par,我该怎么办?当我尝试使用像t_stock_par.size_param这样的对象调用函数时,我收到错误error: expected identifier or '('

1 个答案:

答案 0 :(得分:4)

在此声明中

typedef struct s_stock_par
{
    int size_param;
    char *copy;
}   t_stock_par;

t_stock_par不是struct s_stock_par类型的对象。它是此类型的别名。

您需要定义一个类型的对象,删除typedef关键字,如

struct s_stock_par
{
    int size_param;
    char *copy;
}   t_stock_par;

在这种情况下,t_stock_par确实是struct s_stock_par类型对象的标识符。

或使用对象的单独声明

typedef struct s_stock_par
{
    int size_param;
    char *copy;
}   t_stock_par;

t_stock_par obj;