📄 subject_62609.htm
字号:
<p>
序号:62609 发表者:oldwolf 发表日期:2003-11-27 17:33:51
<br>主题:关于结构体中的数组问题
<br>内容:各位大吓:<BR> 你们好! 我有一个结构体,其中包括一个数组,我想访问数组里面的元素时,编译时说没有该变量,请问是怎么回事。具体情况如下:<BR>结构体:typedef struct<BR>{<BR> unsigned int nMsgType:8; // Payload type<BR> unsigned int nFileTotalNum:8; // File total number<BR> unsigned int nFileNo[16]; // file number code<BR>} MSG_HEADER1, *PMSG_HEADER1;<BR><BR>访问时用语句<BR> for(int i=0;i<nPortCount;i++)<BR> pMsg->nFileNo[i] = (unsigned int)nPortNum[i];//(其中pMsgS是结构体变量<BR>编译错误为:<BR>'nFileNo' : is not a member of 'MSG_HEADER1'<BR>请各位说说这是咋回事,并且请问怎样才能得到数组里的元素
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:golen 回复日期:2003-11-27 17:41:02
<br>内容:pMsg->nFileNo[i]<BR>是不是要写成<BR>pMsg.nFileNo[i] <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:oldwolf 回复日期:2003-11-27 19:31:06
<br>内容:楼上的兄弟,我可能没有给你说清楚,pMsg是结构体的指针变量,我用过成员变量,就是象你所说的那样,不行。但是我把该结构体用在一个简单的C++程序里(即只有主函数)运行正确。所以,我也不止到是怎么回事。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:badboy 回复日期:2003-11-28 15:53:57
<br>内容:你那个pMsg是个指针,该指针不能直接就调用该类的成员变量。你为他赋初值了吗?即光声明一个该类型的指针不行,必须得声明一个该类的对象,这样,才能为该结构体各个成员赋值。<BR><BR> 对了, <BR>unsigned int nMsgType:8; <BR> 后面的:8 是什么意思? 请告知!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:gws 回复日期:2004-01-09 11:11:13
<br>内容:如果是全局变量的话,声明和使用不在一个文件中,在使用的文件中用EXTERN 再次引用,此时应该把结构体中的所有成员重新全部写过,不能只引用结构体变量名。否则则认为此结构体在此文件中不含有该成员。<BR>重新写过后则没有任何问题。<BR><BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:tiger shi 回复日期:2004-01-13 10:28:18
<br>内容:unsigned int nMsgType:8; <BR>后面那个8的意思是,这个变量是unsigned int,但只给这个变量分配8位长度,这样可以节约空间。一个unsigned int一般是32位,这样其他的24位还可以存放别的内容。<BR><BR>用PMSG_HEADER1之前是不是要先定义一下:PMSG_HEADER1 pMsg。<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:badboy 回复日期:2004-01-13 14:49:10
<br>内容:谢谢tiger shi ! 为感谢您的答案,特献上一个笑话。<BR><BR>有家妓院倒闭了,拍卖所有的东西,有个小伙买了一只鹦鹉回家。 <BR>回到家里,鹦鹉开始说话了:“环境变了,环境变了” <BR>小伙的母亲听到后便走到客厅,鹦鹉又说道:“老板娘换了,老板娘换了。” <BR>小伙的姐姐听到后,也来到客厅,鹦鹉又说:“小姐也换了,小姐也换了。” <BR>小伙的父亲也来到客厅,鹦鹉叫道:“老嫖客没变,老嫖客没变!”...... <BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -