2.typedef struct xxx
{
unsigned int uint:4;
}MyTest;
void main()
{
MyTest a;
cout<<a.uint<<endl;
}
result:12
请问这是为什么?
13 个解决方案
#1
1.
头文件中
class A
{
static const int i;
};
cpp文件中
const int A::i = 1;
2.
你的a没有初始化,uint里面的值是多少是不能确定的。
头文件中
class A
{
static const int i;
};
cpp文件中
const int A::i = 1;
2.
你的a没有初始化,uint里面的值是多少是不能确定的。
#2
技术问题请到技术区提问。
#3
帮楼主转过去了。
#4
静态变量类外初始化。
#5
考
为什么在非技术区啊?
建议转到技术区!
1.在类中声明一个静态常量,我该如何初始化它?
标准中规定
可以这样
头文件中
class xx
{
static const int con = 4;
}
文本文件中
static const int xx::con;//必须的变量声明
但在devcpp中,也可以不声明就通过了
另外也可以用楼上的方法
2.typedef struct xxx
{
unsigned int uint:4;
}MyTest;
void main()
{
MyTest a;
cout<<a.uint<<endl;
}
result:12
请问这是为什么?
因为是xxx的成员uint使用的是位字段,是4位整型
你没有对其初始化
所以为默认值
对于12,我认为你是在vc下测试的,栈上默认的内存是0xcccccccc,
所以你取一位是c
也就是12了
为什么在非技术区啊?
建议转到技术区!
1.在类中声明一个静态常量,我该如何初始化它?
标准中规定
可以这样
头文件中
class xx
{
static const int con = 4;
}
文本文件中
static const int xx::con;//必须的变量声明
但在devcpp中,也可以不声明就通过了
另外也可以用楼上的方法
2.typedef struct xxx
{
unsigned int uint:4;
}MyTest;
void main()
{
MyTest a;
cout<<a.uint<<endl;
}
result:12
请问这是为什么?
因为是xxx的成员uint使用的是位字段,是4位整型
你没有对其初始化
所以为默认值
对于12,我认为你是在vc下测试的,栈上默认的内存是0xcccccccc,
所以你取一位是c
也就是12了
#6
unsigned int uint:4;
冒号后面跟个4有什么意思?
冒号后面跟个4有什么意思?
#7
哦,我知道了。谢谢 All!
#8
1: 除了静态整型变量,其他类型的静态变量只能在类实现时初始化。
#9
unsigned int uint:4; //表示位域里的这个项占4个二进制位
#10
静态成员变量,类定义,类外初始化
第二个表示位,占用4位
第二个表示位,占用4位
#11
1。在类外初始花
2。代表4个二进制位
2。代表4个二进制位
#12
1。在类外初始花,不要static,加上作用域
2。代表4个二进制位
2。代表4个二进制位
#13
不如enum
#1
1.
头文件中
class A
{
static const int i;
};
cpp文件中
const int A::i = 1;
2.
你的a没有初始化,uint里面的值是多少是不能确定的。
头文件中
class A
{
static const int i;
};
cpp文件中
const int A::i = 1;
2.
你的a没有初始化,uint里面的值是多少是不能确定的。
#2
技术问题请到技术区提问。
#3
帮楼主转过去了。
#4
静态变量类外初始化。
#5
考
为什么在非技术区啊?
建议转到技术区!
1.在类中声明一个静态常量,我该如何初始化它?
标准中规定
可以这样
头文件中
class xx
{
static const int con = 4;
}
文本文件中
static const int xx::con;//必须的变量声明
但在devcpp中,也可以不声明就通过了
另外也可以用楼上的方法
2.typedef struct xxx
{
unsigned int uint:4;
}MyTest;
void main()
{
MyTest a;
cout<<a.uint<<endl;
}
result:12
请问这是为什么?
因为是xxx的成员uint使用的是位字段,是4位整型
你没有对其初始化
所以为默认值
对于12,我认为你是在vc下测试的,栈上默认的内存是0xcccccccc,
所以你取一位是c
也就是12了
为什么在非技术区啊?
建议转到技术区!
1.在类中声明一个静态常量,我该如何初始化它?
标准中规定
可以这样
头文件中
class xx
{
static const int con = 4;
}
文本文件中
static const int xx::con;//必须的变量声明
但在devcpp中,也可以不声明就通过了
另外也可以用楼上的方法
2.typedef struct xxx
{
unsigned int uint:4;
}MyTest;
void main()
{
MyTest a;
cout<<a.uint<<endl;
}
result:12
请问这是为什么?
因为是xxx的成员uint使用的是位字段,是4位整型
你没有对其初始化
所以为默认值
对于12,我认为你是在vc下测试的,栈上默认的内存是0xcccccccc,
所以你取一位是c
也就是12了
#6
unsigned int uint:4;
冒号后面跟个4有什么意思?
冒号后面跟个4有什么意思?
#7
哦,我知道了。谢谢 All!
#8
1: 除了静态整型变量,其他类型的静态变量只能在类实现时初始化。
#9
unsigned int uint:4; //表示位域里的这个项占4个二进制位
#10
静态成员变量,类定义,类外初始化
第二个表示位,占用4位
第二个表示位,占用4位
#11
1。在类外初始花
2。代表4个二进制位
2。代表4个二进制位
#12
1。在类外初始花,不要static,加上作用域
2。代表4个二进制位
2。代表4个二进制位
#13
不如enum