gpt4 book ai didi

c++ - 如何从C++源文件访问C源文件中的全局变量

转载 作者:行者123 更新时间:2023-11-30 18:24:00 25 4
gpt4 key购买 nike

有一个非常大的C文件,里面定义了很多字符串并在本地使用。我想从 C++ 文件访问这些字符串,但使用 extern "C"没有帮助。

C 文件如下所示:data.c

#include <stdio.h>

static char* str = "string\n";

void p() {
printf(str);
}

c++ 文件如下所示:

#include <iostream>

extern "C" {
extern char* str;
extern void p();
};

int main(int argc, char* argv[]) {
p();
std::cout << str;
return 0;
}

我用的是VS2013,编译报错

error LNK2001: unresolved external symbol _str
fatal error LNK1120: 1 unresolved externals

调用C文件中定义的函数没有问题。

是否可以从 C++ 访问 C 中的变量?以及如何正确地做到这一点?

最佳答案

当您在文件中使用static关键字时。它表示以 static 为前缀的变量不能导出到另一个文件中。您可以将该变量保持为非静态,然后也可以在其他文件中访问这些变量。

您可以引用以下文章。 https://cboard.cprogramming.com/cplusplus-programming/102259-global-variable-access-c-cplusplus.html

关于c++ - 如何从C++源文件访问C源文件中的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46927311/

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