gpt4 book ai didi

c - 使结构在库和应用程序中都可见 - C

转载 作者:太空宇宙 更新时间:2023-11-04 05:19:40 28 4
gpt4 key购买 nike

我想知道如何使结构在库内和外部 header 中都可见。让我试着用下面的代码来解释

我有一个结构:

typedef struct{
int a;
int b;
}strt_1;

我想在应用程序中创建一个相同的实例并将其传递给库函数,然后更新内部的 a 和 b 变量,因此

申请

int main()
{
strt_1 a;
foo(&a);
}

图书馆内:

   int foo(strt_1 *a)
{
a->b = 0;
a->a = 1;
}

问题:如果我在库中创建结构的定义,当我在应用程序中重新键入相同的内容时,它显示为重新定义(很明显)。但是如果我在应用程序中键入它,我将无法编译它,因为它说缺少定义,Soo,我如何向外部第 3 方库用户显示 Struct 的内容,并使其对库编译器可见?

最佳答案

您应该将结构和 typedef 放在库附带的头文件中。库和使用库的应用程序都使用这个头文件。头文件中定义的结构和类型定义不会导致多重定义错误,只有在两者中定义全局变量函数才会出现这种情况。

此外,库中的函数也应该在库的头文件中进行原型(prototype)设计。

关于c - 使结构在库和应用程序中都可见 - C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16836403/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com