求助,这个怎么初始化?

feidegengao 2012-04-10 10:13:32
struct align
{
enum {INT, FLOAT, STRING} type;
union
{
int i;
float f;
char *s;
}value;
char c;
};
想问一下怎样初始化这个结构体变量?
...全文
183 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
feidegengao 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 的回复:]
你要初始化什么啊?
想清空,直接memset
如果想赋值的话,要根据类型分别给成员变量赋值就是了
[/Quote]
该结构类型的变量
nice_cxf 2012-04-12
  • 打赏
  • 举报
回复
你要初始化什么啊?
想清空,直接memset
如果想赋值的话,要根据类型分别给成员变量赋值就是了

feidegengao 2012-04-12
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 的回复:]
C/C++ code

#include <stdio.h>

struct align
{
enum ETYPE{INT, FLOAT, STRING} typeddd;
union UTYPE
{
int i;
float f;
char *s;
}value;
char c;
……
[/Quote]
不好意思我用的是vc6.0没用,vs2010也没用,主函数的INT 没定义
游牧小小诗人 2012-04-11
  • 打赏
  • 举报
回复

#include <stdio.h>

struct align
{
enum ETYPE{INT, FLOAT, STRING} typeddd;
union UTYPE
{
int i;
float f;
char *s;
}value;
char c;
};

int main(void)
{
struct align test = {INT, 10, 'c'};
printf("%d, %d, %c\n", test.typeddd, test.value.i, test.c);
return 0;
}


可以正常显示与初始化
红酒蒙蒙 2012-04-11
  • 打赏
  • 举报
回复
引用 3 楼 的回复:

引用 2 楼 的回复:
struct align test = {INT, 1, 'A'};
这样是可以的。

cout<<test.type<<endl<<test..value.i<<endl<<test.c;来看输出结果
ProgrammingRing 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

引用 2 楼 的回复:
struct align test = {INT, 1, 'A'};应该是这样吧……不是很确定
这样我试了没用
[/Quote]
不是吧?我刚试了可以啊
猪头小哥 2012-04-10
  • 打赏
  • 举报
回复
枚举法没用过,可能还没发现他的好处~~
feidegengao 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]
C/C++ code

#include <iostream>
using namespace std;

struct align
{
enum ETYPE{INT, FLOAT, STRING} typeddd;
union UTYPE
{
int i;
float f;
char *s;
……
[/Quote]
谢了
feidegengao 2012-04-10
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
struct align test = {INT, 1, 'A'};应该是这样吧……不是很确定
[/Quote]这样我试了没用
ProgrammingRing 2012-04-10
  • 打赏
  • 举报
回复
struct align test = {INT, 1, 'A'};应该是这样吧……不是很确定
W170532934 2012-04-10
  • 打赏
  • 举报
回复

#include <iostream>
using namespace std;

struct align
{
enum ETYPE{INT, FLOAT, STRING} typeddd;
union UTYPE
{
int i;
float f;
char *s;
}value;
char c;
};


void main()
{
align test={align::ETYPE::INT,10,'c'};
cout<<test.value.i<<" "<<test.c<<endl;
}

69,369

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧