gcc 4.4.4 c89
我在我的头文件中有这个。foward typedef结构
port.h
struct struct_tag;
int initialize_ports(struct_tag *port);
在我的文件实行我有这样的:
port.c
typedef struct struct_tag {
int port_id;
} Port_t;
而且在我driver.h文件,我有以下几点:
#include "port.h"
int initialize_ports(struct_tag *port)
{
port = malloc(sizeof *port);
/* do checking here */
}
我有forwa rd声明了结构,因为我想隐藏内部元素。
不过,我让我的initialize_ports以下错误头文件:
expected ‘)’ before ‘*’ token
我只是想知道我怎么能向前声明并能够通过结构作为参数?
非常感谢任何建议,
你想隐藏内部元素,但现在你隐藏他们从你自己的代码。 'driver.h'需要访问'port.c'中的定义,这个定义需要放在一个更适合包含某个地方的文件中。 ('.c'文件通常包含代码,而不仅仅是类型定义。) – 2010-11-16 11:16:54