我的头文件名为vector.h

typedef struct coordinates coordinates;

坐标结构应该有两个变量。xy
如何在不更改头文件中的任何内容的情况下包含这两个变量xy
我的想法是在main.c
coordinates{
int x;
int y;
};

我写上面是因为我已经在vector.h中写了一个typedef struct coordinates。所以,如果我再写一次,它就会重复。但是上面的语法本身是错误的,因为编译器正在抛出错误。如果我理解结构错误,请帮助我,或者帮助我如何在结构中声明变量。

最佳答案

标题中的此声明

typedef struct coordinates coordinates;

不是很有用,因为在大多数情况下通常需要完整的结构定义。因此,一般来说,最好在头中附加完整的结构定义。
例如
typedef struct coordinates coordinates;
struct coordinates
{
    int x;
    int y;
};

只有在不需要结构的compete类型时,单个typedef声明才足够。例如,当只声明指向结构对象的指针时。
如果不能更改标题,请包含此定义
struct coordinates
{
    int x;
    int y;
};

在引用结构的模块中。

关于c - c中的类型声明和声明结构,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57935490/

10-11 16:09