⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_48271.htm

📁 一些关于vc的问答
💻 HTM
字号:
<p>
序号:48271 发表者:xiongli 发表日期:2003-07-29 22:24:03
<br>主题:关于stack向什么方向伸长和大头小头的问题
<br>内容:来源是这个代码<BR>int i;<BR>char *cp=(char*)(&amp;i);<BR>char resutlt[4];<BR>//memcpy or :<BR>result[0]=*(cp++);<BR>result[1]=*(cp++);<BR>result[2]=*(cp++);<BR>result[3]=*(cp++); <BR><BR>目的是把32bit的int i放到四个char中去<BR>问题是:在不同的机器上(大头小头),会不会有不同的结果<BR>我考虑了一下,觉得会<BR><BR>原因是,我认为对于cp++,或者是cp=cp+1这种代码,编译器不会对不同的机器分别生成实际的+1和-1两种不同代码.不过我没有其他的机器,不知道我的猜想对不对<BR><BR>同时,inter默认堆栈是向下伸长。伸长方法不同对于编译器处理方法不同。不过我在vc中没有找到调整默认伸张方向的参数<BR>是因为安装在inter cpu下的vc本身就认定了堆栈只能向下伸长吗?<BR>谢谢
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:米罗 回复日期:2003-07-29 23:55:34
<br>内容:这个问题我觉得是和网络编程那一块关于htons()、ntohl()差不多,inter的CPU是按逆序安排字节,而有的CPU是按正序处理的。<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>
<font color=red>答案被接受</font><br>回复者:litpud 回复日期:2003-07-31 15:13:35
<br>内容:1 当然会!<BR>2 不会出现不同的两种代码<BR>3 这与堆栈增长方向没有任何关系<BR>4 与多字节编码顺序有关:BIG_ENDIAN or LITTLE_ENDIAN<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 + -