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