/* ..CODE.. */
struct st_Settings {
struct {
unsigned int x;
unsigned int y;
unsigned int width;
unsigned int height;
} window;
} defaultSettings;
/* ..CODE.. */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow) {
using st_Settings; // default settings
{
using window;
{
x = 50;
y = 50;
width = 800;
height = 600;
}
}
/* ..CODE.. */
}
此代码无效,这是我的问题, 我可以将“使用”关键字替换为与结构一起使用的其他东西吗?
Okey我有这样的结构:
struct
{
struct a
{
int a;
int b;
int c;
}
struct b
{
struct a
{
int a;
int b;
int c;
}
struct b
{
int a;
int b;
int c;
}
}
struct c
{
int a;
int b;
int c;
}
} a;
我必须这样做:
a.a.a = 1;
a.a.b = 12;
a.a.c = 14;
a.b.a.a = 41;
a.b.a.b = 61;
a.b.a.c = 34;
a.b.b.a = 65;
a.b.b.b = 45;
a.b.b.c = 23;
a.c.a = 1;
a.c.b = 0;
a.c.c = 4;
或者可以这样做:
a.
{
a.
{
a = 1;
b = 12;
c = 14;
}
b.
{
a.
{
a = 41;
b = 61;
c = 34;
}
b.
{
a = 65;
b = 45;
c = 23;
}
}
c.
{
a = 1;
b = 0;
c = 4;
}
}
答案 0 :(得分:0)
using
关键字未在您的代码中正确使用(在此段代码中根本不需要):
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int iCmdShow)
{
st_Settings settings;
settings.window.x = 50;
settings.window.y = 50;
settings.window.width = 800;
settings.window.height = 600;
// ...
}
另请注意,您定义结构的方式是定义名为defaultSettings
的全局实例。如果您想要使用它,则应删除上面settings
的行声明,并用defaultSettings
替换它的所有其他实例。
答案 1 :(得分:0)
在您声明变量时,唯一接近您想要的是初始化结构:
struct st_Settings {
struct {
unsigned int x;
unsigned int y;
unsigned int width;
unsigned int height;
} window;
} defaultSettings = {{50,50,800,600}};
同时,您可以在函数内部进行初始化:
int a = 10 ;
int b = 20 ;
struct st_Settings declaredAndSetted = {{a,b,defaultSettings.window.width,400}} ;
如果使用c ++ 0x standard($ g++ -std=c++0x <file>
),可以用这种方式将值重新分配给结构变量:
defaultSettings = {{a,b,defaultSettings.window.width,400}} ;