-2
如何訪問另一個文件中的結構元素?有文件可以說1.cpp和2.cpp,我立刻像GCC 1.cpp 2.cpp comiling兩個文件,但我得到如下錯誤如何訪問另一個文件中的結構元素?
1. warning: ‘struct st’ declared inside parameter list [enabled by default]
2. warning: its scope is only this definition or declaration, which is probably not what you want [enabled by default]
3.dereferencing pointer to incomplete type
請幫我解決我的代碼下面
1.C
#include<stdio.h>
struct st
{
int s;
char ch[20];
};
void fn(struct st *);
int main()
{
struct st var={2,"pravu"};
fn(&var);
}
2.C
#include<stdio.h>
void fn(struct st *p)
{
printf("%d\n",p->x);
printf("%s\n",p->ch);
}
我編譯爲GCC 1.C 2.C?
的言論謝謝很多先生 – 2014-10-27 17:02:47
需要注意的是(一)標題應該有衛兵來保護它針對多個(b)頭文件不應包含'',因爲頭文件中的所有聲明都不依賴於來自''的聲明(但如果你有'void ffn(FILE * fp,struct st * p);'作爲聲明 - 那麼你需要'#include '。頭文件應該是自包含和冪等的。獨立的意思是如果一個程序需要頭文件聲明的服務, e標題,並且不需要使用它的代碼包含其他標題。 _ [... continue ...] _ –
2014-10-27 17:28:33
_ [... continuation ...] _ Idempotence意味着頭可以多次包含,並且編譯不會中斷。這通常意味着它由頂部的#ifndef HEADER_H_INCLUDED和#define HEADER_H_INCLUDED以及底部的#endif // HEADER_H_INCLUDED保護。爲宏選擇的名稱需要是唯一的 - 例如,有些人使用UUID,但其他情況並不重要。 – 2014-10-27 17:30:42