📄 arm数据对齐 ----- ads1_2编译_linux技术文章_linux_操作系统.htm
字号:
<P class=MsoNormal><SPAN lang=EN-US><SPAN>
</SPAN>2</SPAN><SPAN style="FONT-FAMILY: 宋体">、</SPAN><SPAN lang=EN-US>usigned
long </SPAN><SPAN style="FONT-FAMILY: 宋体">是</SPAN><SPAN lang=EN-US>4</SPAN><SPAN
style="FONT-FAMILY: 宋体">字节的,那么数据就按</SPAN><SPAN lang=EN-US>4</SPAN><SPAN
style="FONT-FAMILY: 宋体">字节对齐。</SPAN></P>
<P class=MsoNormal><SPAN
lang=EN-US><SPAN>
</SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">定义两个变量如下:</SPAN><SPAN lang=EN-US>
usigned char<SPAN> </SPAN>a08;</SPAN></P>
<P class=MsoNormal><SPAN
lang=EN-US><SPAN>
</SPAN>Usigned long<SPAN> </SPAN><SPAN> </SPAN>a32</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 42pt; TEXT-INDENT: -42pt"><SPAN
lang=EN-US><SPAN>
</SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">如果</SPAN><SPAN
lang=EN-US>a08</SPAN><SPAN style="FONT-FAMILY: 宋体">所在的地址为</SPAN><SPAN
lang=EN-US>0x80000005</SPAN><SPAN style="FONT-FAMILY: 宋体">,那么</SPAN><SPAN
lang=EN-US>a16</SPAN><SPAN style="FONT-FAMILY: 宋体">所在的地址为</SPAN><SPAN
lang=EN-US>0x80000008</SPAN><SPAN style="FONT-FAMILY: 宋体">,</SPAN><SPAN
lang=EN-US>a32</SPAN><SPAN style="FONT-FAMILY: 宋体">不会分配到</SPAN><SPAN
lang=EN-US>0x80000006</SPAN><SPAN
style="FONT-FAMILY: 宋体">,默认情况下,编译器为</SPAN><SPAN lang=EN-US>usigned
long</SPAN><SPAN style="FONT-FAMILY: 宋体">类型的变量分配到</SPAN><SPAN
lang=EN-US>4</SPAN><SPAN style="FONT-FAMILY: 宋体">的倍数的地址处。</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><O:P></O:P></SPAN></P>
<P class=MsoNormal
style="FONT-WEIGHT: bold; MARGIN-LEFT: 21pt; TEXT-INDENT: -21pt"><!--[if
!supportLists]--><FONT size=4><SPAN lang=EN-US><SPAN>三、</SPAN></SPAN><SPAN
style="FONT-FAMILY: 宋体">解决办法</SPAN></FONT><!--[endif]--></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN lang=EN-US><SPAN>
</SPAN></SPAN><SPAN
style="FONT-FAMILY: 宋体">如果我们想要让编译器不使用自然边界对齐,让任何类型的变量都紧接着上一变量的地址进行分配,可以使用</SPAN><SPAN
lang=EN-US>__packed</SPAN><SPAN style="FONT-FAMILY: 宋体">关键字。</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><SPAN>
</SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">(未完)</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN
lang=EN-US><O:P></O:P></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><O:P></O:P></SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><O:P></O:P></SPAN></P>
<P class=MsoNormal
style="FONT-WEIGHT: bold; MARGIN-LEFT: 21pt; TEXT-INDENT: -21pt"><!--[if
!supportLists]--><FONT size=4><SPAN lang=EN-US><SPAN>四、</SPAN></SPAN><SPAN
style="FONT-FAMILY: 宋体">使用</SPAN><SPAN lang=EN-US>__packed</SPAN><SPAN
style="FONT-FAMILY: 宋体">的注意事项</SPAN></FONT><!--[endif]--></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN lang=EN-US>1</SPAN><SPAN
style="FONT-FAMILY: 宋体">、</SPAN><SPAN lang=EN-US>__packed </SPAN><SPAN
style="FONT-FAMILY: 宋体">对局部变量无效。</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN lang=EN-US>2</SPAN><SPAN
style="FONT-FAMILY: 宋体">、声明为</SPAN><SPAN lang=EN-US>__packed </SPAN><SPAN
style="FONT-FAMILY: 宋体">的变量,必须使用</SPAN><SPAN lang=EN-US>__packed </SPAN><SPAN
style="FONT-FAMILY: 宋体">的指针变量来指向其地址。</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN lang=EN-US><SPAN>
</SPAN></SPAN><SPAN style="FONT-FAMILY: 宋体">如:</SPAN><SPAN lang=EN-US>
</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN
lang=EN-US><SPAN> </SPAN>__packed<SPAN>
</SPAN>u16<SPAN> </SPAN>u<ST1:CHMETCNV unitname="a" sourcevalue="16"
hasspace="False" negative="False" numbertype="1" tcsc="0"
w:st="on">16a</ST1:CHMETCNV>;</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN
lang=EN-US><SPAN> </SPAN>__packed<SPAN>
</SPAN>u16<SPAN> </SPAN>*pu16;</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN
lang=EN-US><SPAN> </SPAN>pu16 = (u16
*)&u<ST1:CHMETCNV unitname="a" sourcevalue="16" hasspace="False"
negative="False" numbertype="1" tcsc="0"
w:st="on">16a</ST1:CHMETCNV>;</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN lang=EN-US>3</SPAN><SPAN
style="FONT-FAMILY: 宋体">、声明为</SPAN><SPAN lang=EN-US>__packed </SPAN><SPAN
style="FONT-FAMILY: 宋体">的结构</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN
lang=EN-US><SPAN> </SPAN></SPAN><SPAN
style="FONT-FAMILY: 宋体">声明为</SPAN><SPAN lang=EN-US>__packed </SPAN><SPAN
style="FONT-FAMILY: 宋体">的结构仅仅</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN lang=EN-US>4</SPAN><SPAN
style="FONT-FAMILY: 宋体">、声明为</SPAN><SPAN lang=EN-US>__packed </SPAN><SPAN
style="FONT-FAMILY: 宋体">的结构变量</SPAN></P>
<P class=MsoNormal><SPAN lang=EN-US><O:P></O:P></SPAN></P>
<P class=MsoNormal
style="FONT-WEIGHT: bold; MARGIN-LEFT: 21pt; TEXT-INDENT: -21pt"><!--[if
!supportLists]--><FONT size=4><SPAN lang=EN-US><SPAN>五、</SPAN></SPAN><SPAN
style="FONT-FAMILY: 宋体">后记</SPAN></FONT><!--[endif]--></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt"><SPAN
style="FONT-FAMILY: 宋体">以上内容未经测试,由</SPAN><SPAN lang=EN-US>ADS</SPAN><SPAN
style="FONT-FAMILY: 宋体">编译器手册及相关资料理解总结所得。</SPAN></P>
<P class=MsoNormal style="MARGIN-LEFT: 21pt; TEXT-INDENT: 21pt"><SPAN
style="FONT-FAMILY: 宋体">不建议使用</SPAN><SPAN lang=EN-US>__packed </SPAN><SPAN
style="FONT-FAMILY: 宋体">来节省数据大小,因为这需要付出减低执行效率和浪费代码空间的代价。</SPAN></P><BR><BR>
<P id=TBPingURL></SPAN></P>
<DIV class=ad_f10 id=ad_f10>
<SCRIPT
src="ARM数据对齐 ----- ADS1_2编译_Linux技术文章_Linux_操作系统.files/ad_f10.js"></SCRIPT>
</DIV>
<DIV class=ad_f11 id=ad_f11>
<SCRIPT
src="ARM数据对齐 ----- ADS1_2编译_Linux技术文章_Linux_操作系统.files/ad_f11.js"></SCRIPT>
</DIV>
<DIV class=kjh>欢迎光临<A href="http://www.diybl.com/" target=_blank><STRONG><FONT
color=#cc0000>DIY部落</FONT></STRONG></A>,<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/849ftkfztk.html"
target=_blank><STRONG><FONT color=#cc0000>点击这里</FONT></STRONG></A>查看更多文章教程 <A
class=redlink
href="javascript:self.location='/user/chm/rar.asp?c_id=78326'">【点击打包该文章】</A></DIV></DIV>
<DIV class=ad_f4 id=ad_f4>
<SCRIPT
src="ARM数据对齐 ----- ADS1_2编译_Linux技术文章_Linux_操作系统.files/ad_f4.js"></SCRIPT>
</DIV>
<DIV class=mediacontent>如果图片或页面不能正常显示请<A class=redlink
onmouseover="this.style.cursor='hand';"
onclick="openerror('78326','ARM数据对齐 ----- ADS1.2编译');">点击这里</A> 站内搜索: <INPUT
maxLength=255 size=25 name=wd3> <INPUT onclick=tosearch(document.all.wd3); type=button value=千寻搜索></DIV>
<DIV style="CLEAR: both" align=center></DIV>
<DIV class=toollinks>【<A
href="javascript:window.external.addFavorite(window.location,'ARM数据对齐%20%20-----%20%20ADS1.2编译-DIY部落');">收藏此页</A>】【<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/849ftkfztk.html"
target=_blank>栏目页面</A>】【<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071019/78326.html#comment">发表评论</A>】【<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071019/78326.html#">返回顶部</A>】【<A
href="javascript:window.close()">关闭</A>】 </DIV>
<DIV class=p_bottom>上一篇文章:<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071019/78327.html">微软Vista遭到报应</A><BR>下一篇文章:<A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071019/78325.html">linux一句话问答5(转自Linux时代网)</A></DIV></DIV>
<DIV style="CLEAR: both; BACKGROUND: #fff; OVERFLOW: hidden; HEIGHT: 8px"></DIV>
<DIV id=links align=center>
<TABLE class=xgzt cellSpacing=0 cellPadding=0 width=687>
<TBODY>
<TR>
<TD style="PADDING-LEFT: 5px" bgColor=#e1effa>
<H3>推荐文章</H3></TD></TR>
<TR>
<TD bgColor=#fcfeff>
<DIV class="tj_l tj"><NOBR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071129/88994.html"
target=_blank>内核内存分配类型</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071129/88839.html"
target=_blank>世界第一黑客总结电脑安全十大建议(图)</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008628/129004.html"
target=_blank>linux 内核模块装载过程 </A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/200865/122245.html"
target=_blank>h323分析 ,hust校友的文章</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/200873/129909.html"
target=_blank>sed学习</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008620/127090.html"
target=_blank>解决linux控制台下中文乱码</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008810/135526.html"
target=_blank>Fast Scatter-Gather I/O</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008829/138678.html"
target=_blank>Linux任务控制</A></DIV>
<DIV class="tj_r tj"><NOBR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008619/126848.html"
target=_blank>架构 LVS 系统相关软件介绍</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/200875/130334.html"
target=_blank>rhas3+qmail+mysql+smtp+vpopmail+igenus</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008815/136040.html"
target=_blank>LVS大全</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/20071027/80532.html"
target=_blank>Windows转向Linux</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2007926/73911.html"
target=_blank>CentOS3 Linux 服务器环境配置优化详解</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/200877/130810.html"
target=_blank>100个最佳的Linux站点推荐</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008717/133415.html"
target=_blank>嵌入式学习网站推荐</A><BR><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008827/137832.html"
target=_blank>包缓冲区操作的几个内嵌函数</A></DIV></NOBR></TD></TR></TBODY></TABLE></DIV>
<DIV style="CLEAR: both; BACKGROUND: #fff; OVERFLOW: hidden; HEIGHT: 8px"></DIV>
<DIV class=cleanblock2
style="BORDER-RIGHT: #dedfde 1px solid; BORDER-TOP: #dedfde 1px solid; BACKGROUND: #ededed; BORDER-LEFT: #dedfde 1px solid; BORDER-BOTTOM: #dedfde 1px solid">
<H3>文章评论</H3></DIV>
<DIV class=cleanblock3><IFRAME class=comm_index name=pindex
src="ARM数据对齐 ----- ADS1_2编译_Linux技术文章_Linux_操作系统.files/CAS9I34L.htm"
frameBorder=false width="100%" scrolling=no
onload="window.setTimeout('iframe_resize()',1000)" height=0></IFRAME></DIV>
<DIV style="CLEAR: both; BACKGROUND: #fff; OVERFLOW: hidden; HEIGHT: 8px"></DIV>
<FORM style="MARGIN-TOP: 0px"
action=/user/comment.asp?id=78326&url=http://www.diybl.com/course/6_system/linux/Linuxjs/20071019/78326.html
method=post>
<DIV class=comment_1>
<DIV class=cleanblock2><A name=comment></A>
<H3>请您留言</H3></DIV>
<DIV class=cleanblock style="PADDING-RIGHT: 20px; PADDING-LEFT: 20px"><LABEL
for=label>昵称: <INPUT onclick=this.focus();this.select() maxLength=20 size=15
value=DIY部落网友 name=hypocorism> <A
href="http://www.diybl.com/user/register.asp" target=_blank><FONT
color=red>注册会员</FONT></A> <A href="http://www.diybl.com/user/login.asp"
target=_blank>会员登陆</A> <BR><SPAN style="LINE-HEIGHT: 25px"><A
href="http://www.diybl.com/user/chgpage/cata.asp?num=1060103"
target=_blank><FONT color=#990000><STRONG>点击这里</STRONG></FONT></A></SPAN>
自己制作打包的chm电子书教程 <TEXTAREA style="VERTICAL-ALIGN: text-top; WIDTH: 100%; HEIGHT: 7em" onfocus=showchk(); name=content rows=6></TEXTAREA>
<LABEL id=checkCode style="DISPLAY: none">验证: <INPUT maxLength=5 size=8
name=loginnum> <IMG id=codeImg
style="VERTICAL-ALIGN: middle; CURSOR: pointer; HEIGHT: 18px"
onclick="this.src='/user/getcode.asp?t='+Math.random()" alt=验证码,看不清楚?请点击刷新验证码
src=""> </LABEL> <INPUT class=btn_2k3 style="MARGIN-TOP: 8px" type=submit value=发表评论>
</DIV></DIV>
<DIV class=comment_1
style="FLOAT: left; MARGIN-LEFT: 6px; WIDTH: 313px; HEIGHT: 90px">
<DIV class=cleanblock2>
<H3>网友推荐文章</H3></DIV>
<DIV class=cleanblock>
<TABLE cellSpacing=0 cellPadding=0 width="100%">
<TBODY>
<TR>
<TD style="PADDING-RIGHT: 15px">
<UL>
<LI><A
href="http://www.diybl.com/course/6_system/linux/Linuxjs/2008628/128995.html"
target=_blank>Linux As 4下安装配置DNS服务器(9.3.3版)</A></LI>
<LI><A
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -