搜索一段時間後。我編寫了一個簡單的程序,試圖解決我的更大的問題,更容易,很少或沒有成功。這是在主要工作正常代碼:Typedef結構未知類型名稱
typedef struct nimaginario{
int parte_real;
int parte_imaginaria;
}nimaginario;
int suma(nimaginario *n){
return n->parte_real + n->parte_imaginaria;
};
#include <stdlib.h>
int main(){
nimaginario *num = malloc(sizeof(nimaginario));
num->parte_real = 1;
num->parte_imaginaria = 2;
int a = suma(num);
}
然後我嘗試把它分成應該在組織的不同部分至於說:prueba.c,prueba.h和main.c中
prueba.h:
#define PRUEBA_H
#ifndef PRUEBA_H
typedef struct nimaginario{
int parte_real;
int parte_imaginaria;
}nimaginario;
int suma(nimaginario *n);
#endif
prueba.c:
#include "prueba.h"
int suma(nimaginario *n){
return n->parte_real + n->parte_imaginaria;
};
的main.c:
#include <stdlib.h>
#include "prueba.h"
int main(){
nimaginario *num = malloc(sizeof(nimaginario));
num->parte_real = 1;
num->parte_imaginaria = 2;
int a = suma(num);
}
在命令「GCC的main.c」 在我一樣第二名編制的第一個地方,我如下:「GCC prueba.c的main.c」
和第二個時間,這具體嘗試(出了一百)我得到這個錯誤:
prueba.c:3:10: error: unknown type name `nimaginario'
main.c: In function `main':
main.c:18:2: error: unknown type name `nimaginario'
main.c:18:35: error: `nimaginario' undeclared (first use in this function)
main.c:18:35: note: each undeclared identifier is reported only once for each function it appears in
main.c:19:5: error: request for member `parte_real' in something not a structure or union
main.c:20:5: error: request for member `parte_imaginaria' in something not a structure or union
我想我已經試過一切和任何東西。並看到我可以看到的所有錯誤。我也搜索了很多,並在Stackoverflow中搜索,但沒有成功。
事情我已經嘗試:
- 更改的typedef結構...並做一步一步來。
- 先做typedef,然後做struct,反之亦然。
- 更改struct和typedef中標籤的名稱。
- 檢查#define /#ifndef
- 改變指針全部(最初我想要的結構是整數指針)忘記typedef和工作只與結構。因此總是聲明爲struct nimaginario。
- 檢查我的文件在哪裏。
我只是沒有錘子關閉。我覺得很麻木的,剛剛無C一年...
'#define PRUEBA_H #ifndef PRUEBA_H'應該是'#ifndef PRUEBA_H #define PRUEBA_H' – BLUEPIXY