gpt4 book ai didi

c++ 跨多个文件的全局变量

转载 作者:可可西里 更新时间:2023-11-01 14:57:08 25 4
gpt4 key购买 nike

我有一些代码分布在三个文件中,我想使用第四个“gloabls”文件来存储一些物理常量,例如 pi 的值。这将避免 pi = 4*atan(1.0) 的重复定义。在四处寻找之后,我尝试过创建一个全局头文件:

/*globals.h*/
extern double g_pi;

和一个全局cpp文件:

/*globals.cpp*/
#include "math.h"
#include "globals.h"
double g_pi = 4*atan(1.0);

然后我将这些文件包含在我的主文件中:

/*mainFile.cpp*/
//Include math and other libraries
#include globals.h"
int main() {
/*
....
*/
double x = 2*g_pi
/*
....
*/
}

这给了我一个对 g_pi 的 undefined reference 错误。我在 Ubuntu 上使用 g++ 编译器。希望它是一个简单的修复!非常感谢您的建议。如果需要更多详细信息,我很乐意提供。

最佳答案

您可以简单地使用 include 中的 M_PI(还有其他常量)。

编辑:您的设置是正确的。我有一个工作最小的例子:

全局变量

extern double g_tst;

全局变量

#include "globals.h"
double g_tst = 4.0;

主要.cpp

#include "globals.h"
#include <stdio.h>
#include <stdlib.h>

int main()
{
fprintf (stderr, "g_tst = %lf \n", g_tst);
return 0;
}

问题出在你的构建系统中

参见 wikipedia

关于c++ 跨多个文件的全局变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9709116/

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