【问题标题】:Compile structs in c separate files在 c 单独的文件中编译结构
【发布时间】:2013-07-22 22:18:59
【问题描述】:

我想编译两个单独的 C 文件,其中一个将包含一个结构类型,如

typedef struct {  
  int renglones;  
  int columnas;  
} Matriz

在另一个文件中调用该结构并使用它,但是当我尝试编译文件时,标记错误,我想知道是否有办法做到这一点,或者无法做到。

【问题讨论】:

  • 在头文件中声明你的结构,并从两个源文件中包含该头文件。
  • 你可以声明一个struct类型的对象并对其进行各种操作,但你不能“调用”它;只能调用函数。
  • 如何使用C -Header Files
  • 如果你想让Matriz对其他C文件不透明,那么你还需要定义一个公共接口来操作Matriz
  • 好的,我要选择头文件选项,谢谢。

标签: c gcc struct compilation


【解决方案1】:

我还没有完全理解你想要做什么。但是,结构的定义应该在头文件中,例如Matriz.h。 定义此文件后,您可以通过在两个文件中通过 include 关键字包含 Matriz.h 来使用新结构。这是定义多个文件使用的结构的正确方法。

例如:

Matriz.h

#ifndef MATRIZ_H
#define MATRIZ_H

typedef struct {  
    int renglones;  
    int columnas;  
} Matriz;


#endif /* end of include guard: MATRIZ_H */

然后在你的c文件中,你可以使用

#include "Matriz.h" 

您会收到一个错误,因为在编译未定义结构的文件时,编译器不知道 Matriz 对象的大小。

如果您需要更多信息,请告诉我。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-03
    • 2018-02-22
    • 1970-01-01
    • 2017-01-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多