typedef union { float f; int i; char c[4]; }MY_DATA; 意思就是 f ;i ; c 使用 同一个 4字节 (不是 3*4 =12字节)的 内存 块, f ;i ; c 用来区分 不同的 数据类型。
“不同的文本框显示不同类型的数据” case 0: sprintf(Prompt,"float=%f", anydata.f ); m_EditFSetWindowText(Prompt) break; case 1: sprintf(Prompt,"int=%d", anydata.i ); m_EditISetWindowText(Prompt) break; ......
用来显示的,可以用 MessageBox: char Prompt [260]; sprintf(Prompt,"float=%f", anydata.f ); MessageBox(Prompt);
把 void CxxxxDlg::OnButton1() 改成 void Function(), 用 什么 都可以
typedef union { float f; int i; char c[4]; }MY_DATA; MY_DATA anydata; void CxxxxDlg::OnButton1() { static int type=0; anydata.f = 1.0f; switch (type) { case 0: afxDump << "float=" << anydata.f << "\n"; break; case 1: afxDump << "int=" << anydata.i << "\n"; break; case 2: afxDump << "char[]="; afxDump << anydata.c[0] << ";"; afxDump << anydata.c[1] << ";"; afxDump << anydata.c[2] << ";"; afxDump << anydata.c[3] << "\n"; break; } type++; type %=3; //float=1. //int=1065353216 //char[]=0;0;-128;63 }
最简单的,union包含几个数据type,窗体拖几个按钮,每个按钮的响应函数显示union中的一个type 是这个意思吗?
是我理解能力有问题还是楼主描述有问题 我怎么不明白?
你的问题是什么呢?
16,472
社区成员
421,731
社区内容
加载中
VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌…… 向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能…… 我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……
试试用AI创作助手写篇文章吧