c++ - 有没有办法在定义结构变量之前对其进行初始化?C++
问题描述
这是我当前的代码,我有一个名为“SCENE”的结构,它包含我可以用来更改不同文件中某些 Win32 窗口的值的信息,该结构有点简单:
struct SCENE
{
LPCWSTR SceneButtonOneText; // Text For Button One
SCENE* SceneButtonOneDestination; // Next Scene To Go To When Button One Is Pressed
LPCWSTR SceneButtonTwoText; // Text For Button Two
SCENE* SceneButtonTwoDestination; // Next Scene To Go To When Button Two Is Pressed
LPCWSTR SceneButtonThreeText; // Text For Button Three
SCENE* SceneButtonThreeDestination; // Next Scene To Go To When Button Three Is Pressed
LPCWSTR SceneButtonFourText; // Text For Button Four
SCENE* SceneButtonFourDestination; // Next Scene To Go To When Button Four Is Pressed
LPCWSTR SceneTextBoxContent; // Text To Be Displayed Inside Of Window
LPCSTR SceneImgDrc; // Directory For An BITMAP To Be Displayed Inside A Window
};
如上所示,一旦按下按钮,它将转到下一个场景,尽管在转到前一个场景时会出现问题,因为场景的变量尚未初始化,我不确定是什么在这里做,我试着做某种“结构原型”,就像你可以用函数做的那样,虽然没有用,我试着写
SCENE Scene4;
SCENE Scene5;
SCENE Scene6;
SCENE Scene6;
上面的完整代码,看看它是否可以初始化,虽然我的编译器抛出了一个关于结构重定义的错误,下面的完整代码:
// Scenes . hpp
// Includes
#include <Windows.h>
// Structures
struct SCENE
{
LPCWSTR SceneButtonOneText;
SCENE* SceneButtonOneDestination;
LPCWSTR SceneButtonTwoText;
SCENE* SceneButtonTwoDestination;
LPCWSTR SceneButtonThreeText;
SCENE* SceneButtonThreeDestination;
LPCWSTR SceneButtonFourText;
SCENE* SceneButtonFourDestination;
LPCWSTR SceneTextBoxContent;
LPCSTR SceneImgDrc;
};
// Prototypes
// Scenes
SCENE Scene7 = SCENE // Front Yard
{
L"Search Bedroom",
&Scene7,
L"Search Kitchen",
&Scene4,
L"Search Living Room",
&Scene5,
L"Search Backyard",
&Scene6,
L"",
"./Images/TatesHouseWTate.bmp"
};
SCENE Scene6 = SCENE // Backyard
{
L"Search Bedroom",
&Scene6,
L"Search Kitchen",
&Scene4,
L"Search Living Room",
&Scene5,
L"Search Front Yard",
&Scene7,
L"",
"./Images/TatesBackyardWTate.bmp"
};
SCENE Scene5 = SCENE // Living Room
{
L"Search Bedroom",
&Scene5,
L"Search Kitchen",
&Scene4,
L"Search Backyard",
&Scene6,
L"Search Front Yard",
&Scene7,
L"",
"./Images/TatesLivingRoomWTate.bmp"
};
SCENE Scene4 = SCENE // Kitchen
{
L"Search Bedroom",
&Scene4,
L"Search Living Room",
&Scene5,
L"Search Backyard",
&Scene6,
L"Search Front Yard",
&Scene7,
L"",
"./Images/TatesKitchenWTate.bmp"
};
SCENE Scene3 = SCENE // Waking Up
{
L"Search Kitchen",
&Scene4,
L"Search Living Room",
&Scene5,
L"Search Backyard",
&Scene6,
L"Search Front Yard",
&Scene7,
L"",
"./Images/TatesBedroomWTate.bmp"
};
SCENE Scene2 = SCENE // Ceiling
{
L"Get Up",
& Scene3,
L"",
& Scene2,
L"",
& Scene2,
L"",
& Scene2,
L"",
"./Images/CeilingFan.bmp"
};
SCENE Scene1 = SCENE // Black
{
L"Open Eyes",
& Scene2,
L"",
& Scene1,
L"",
& Scene1,
L"",
& Scene1,
L"",
"./Images/Black.bmp"
};
SCENE Scene0 = SCENE // Start
{
L"",
& Scene0,
L"Play",
& Scene1,
L"Exit",
& Scene0,
L"",
& Scene0,
L"Text",
"./Images/Image.bmp"
};
非常感谢所有帮助!谢谢!
解决方案
谢谢'Elijay',没想到这么容易,
extern SCENE Scene4;
工作完美!
推荐阅读
- r - 如何将长度为 0 的数字向量设置为 0?
- javascript - 如何在 React 的新选项卡中打开一些子链接
- python - 使用现有电子邮件进行注册测试无法在 django manage.py test 命令中的测试数据库上运行
- azure - Azure MS SQL 防火墙设置(动态 IP 公共网络上的 Azure MS SQL 和 WinForms 客户端)什么是最好的安全方法?
- abap - 集群表的内存效率最高:“select count(*)”或“select .. endselect”?
- kubernetes - k8s 应用程序容器中的出站请求中的连接被拒绝错误。伊斯蒂奥?
- matlab - Matlab:在图像图上绘制一条线
- angular - 如何将 CSP 随机数注入 Angular 的自动生成的脚本标签?
- javascript - 如何从甜蜜警报的文本框中获取值
- go - Go mod:无法检索私有仓库的子模块