如何在QT中使用外部整数
How to use extern integer in QT?
供参考:这不是一个完整的程序,但看起来很像我的程序。据我所知,
有一个头文件:
header.cpp
extern int global_x;
mainWindow.cpp
#include "header.cpp"
int global_x=1;
a.cpp
#include "header.cpp"
int global_x;
cout << global_x;
但是我的global_x是0…为什么?????如果我取出global_x,那么它将无法编译。有人能举一个简单的QT程序的例子来解决这个问题吗?我在网上看了很多东西,但大多数C使用的是extern,而c++使用的不是那么多。谢谢。
基本上,当你编译你的程序时,包含文件是这样的:
a.cpp
extern int global_x;
int global_x;
cout << global_x;
可以看到,当您尝试编译a.p cpp时,global_x从未初始化为1。相反,它默认初始化为0(因为它是一个全局变量)。这就是为什么你看到它是0
首先你有一个链接问题,当你从app.cpp
链接程序时,你不包括mainWindow.o
。所以,linkker抱怨缺少global_x
。如果你正在使用Qt(标记),并设法做到这一点,你可能做错了。
然后将另一个 global_x
添加到app.cpp
,并使其默认值为零(如果您不显式初始化它们,全局变量和静态变量具有此值)。
所以,总结一下,似乎mainWindow
不是你的应用程序的一部分,就你的构建系统而言。修复。
相关文章:
- 如何反转整数参数包
- enum是C++中的宏变量还是整数变量
- 努力将整数转换为链表。不知道我在这里做错了什么
- 整数不会重复超过随机数
- 在C++中手动调整数组大小
- 检查输入是否不是整数或数字
- C++使用整数的压缩数组初始化对象
- 在C++中,将大的无符号浮点数四舍五入为整数的最佳方法是什么
- 将"打开的CV图像"中的"颜色"转换为整数格式
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 如何只允许用户输入正整数
- 如何在c++中从文本文件中逐行读取整数
- C++:如何循环通过向量中的整数元素
- 在函数内部的声明中初始化数组,并在外部使用它
- 我可以信任表示整数的浮点或双精度来保持精度吗
- 序列化,没有库的整数,得到奇怪的结果
- 运行外部程序并获得返回的整数
- C++ - 使用 stringstream 对象从外部 txt 文件中的句子中读取字符串和整数
- 如何在QT中使用外部整数
- 在不使用外部库的情况下,在string中找到大整数的乘法,c++