我正在尝试在其他文件中使用* .h命名结构,例如clube.c,它将从定义为Clubes的结构中创建一个数组。
structures.h:
extern typedef struct Clubes{
char *codClube;
char *nome;
char *estadio;
};
无论我做什么,它都不会出现在我的clubes.c中。
注意:已经包含了“structures.h”
再次感谢, 如果有任何我可以提供的信息可以帮助你帮我问一下。
答案 0 :(得分:3)
关键字typedef
只允许您定义类型,例如typedef int whole_number
这将创建类型whole_number
,现在您可以像使用int
一样使用它,{{ 1}}与结构相同的东西。人们在结构上使用typedef,因此他们不需要编写whole_number x = 5;
:
struct Clubes
现在你不必使用typedef struct Clubes{
char *codClube;
char *nome;
char *estadio;
} clubes;
,你可以使用更短更容易编写的struct Clubes x;
。
clubes x;
关键字为您提供全局链接,在这种情况下,它不会执行任何操作。
你的问题有点令人困惑。如果要创建此结构,然后在其他文件中使用它,则需要创建头文件:
Extern
将其保存在一个头文件中,例如#ifndef __CLUBES_H_
#define __CLUBES_H_ 1
struct Clubes{
char *codClube;
char *nome;
char *estadio;
} clubes;
#endif
,然后在其他一些clubes.h
代码中,您要使用此结构,只需在c
答案 1 :(得分:0)
完美使用头文件
/* put this in clube.h */
struct Clubes{
char *codClube;
char *nome;
char *estadio;
};
/* put this in clube.c */
#include "clube.h"
struct Clubes myarray[5];
答案 2 :(得分:0)
我认为你对这些关键词的作用感到困惑。
struct创建一个新类型。这不会创建任何类型的实例。
extern用于为全局变量提供链接。
typedef为现有类型提供新的全局名称。
/* clube.h */
/* define and declare the Clubes struct */
struct Clubes {
char* codClube;
char* nome;
char* estadio;
}
/* typedef the Clubes struct.
* Now you can say struct Clubes or Clubes_t in your code.
*/
typedef struct Clubes Clubes_t;
/* Now you've created global linkage for my_clubes.
* I.e. two cpp files could both modify it
*/
extern struct Clubes my_clubes[2];
/* clube.c */
#include "clube.h"
/* Now you've got storage for my_clubes */
Clubes_t my_clubes[2];
/* some_other.c */
#include "clube.h"
void fun() {
my_clubes[0].codClube = "foo";
/* etc... */
}