gpt4 book ai didi

c - 不同库中的全局变量,C

转载 作者:行者123 更新时间:2023-12-02 02:35:22 25 4
gpt4 key购买 nike

我正在尝试用一个全局变量来保存我在 C 中的错误消息。

一个名为 Utils 的库具有:

#ifndef private_error_h
#define private_error_h

extern char error[1024];

__declspec(dllexport) void FillError(char* newError);
#define GetErr() error

#endif

文件错误.c:

#include "private_error.h"

char error[1024];
void FillError(char* newError) {
// ...
}

然后我尝试在程序中使用它:

#include "private_error.h"

int main() {
FillError("General error");
printf("%s\n", GetErr());
return 0;
}

它创建两个具有不同地址的变量。如何让程序使用 Utils 库中的变量?

我确实设法通过将 GetErr 更改为返回字符串的函数来绕过这个问题,但我仍然想知道错误在哪里。

最佳答案

你必须在头文件中声明为

外部字符错误[];

并在您的代码文件(.c 文件)中声明它

字符错误[1024];

你分配了两次

关于c - 不同库中的全局变量,C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2038397/

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