﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>语源科技BlogJava-一只牛的异想世界</title><link>http://www.blogjava.net/andyelvis/</link><description /><language>zh-cn</language><lastBuildDate>Sun, 03 May 2026 07:56:20 GMT</lastBuildDate><pubDate>Sun, 03 May 2026 07:56:20 GMT</pubDate><ttl>60</ttl><item><title>一个找出素数的程序</title><link>http://www.blogjava.net/andyelvis/archive/2009/05/31/279188.html</link><dc:creator>蒋耘</dc:creator><author>蒋耘</author><pubDate>Sun, 31 May 2009 04:03:00 GMT</pubDate><guid>http://www.blogjava.net/andyelvis/archive/2009/05/31/279188.html</guid><wfw:comment>http://www.blogjava.net/andyelvis/comments/279188.html</wfw:comment><comments>http://www.blogjava.net/andyelvis/archive/2009/05/31/279188.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/andyelvis/comments/commentRss/279188.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyelvis/services/trackbacks/279188.html</trackback:ping><description><![CDATA[<pre>找出0到cap范围内的素数：</pre>
<pre>void primes(int cap)
{
int i, j, composite;
for(i = 2; i &lt; cap; ++i) {
composite = 0;
for(j = 2; j * j &lt; i; ++j) {
composite += !(i % j);
}
if(!composite){
printf("%d\t", i);
}
}
}
int main()
{
primes(100);
}
</pre>
<img src ="http://www.blogjava.net/andyelvis/aggbug/279188.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyelvis/" target="_blank">蒋耘</a> 2009-05-31 12:03 <a href="http://www.blogjava.net/andyelvis/archive/2009/05/31/279188.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>struts2中获得request response session对象(转)</title><link>http://www.blogjava.net/andyelvis/archive/2009/05/20/271628.html</link><dc:creator>蒋耘</dc:creator><author>蒋耘</author><pubDate>Tue, 19 May 2009 16:26:00 GMT</pubDate><guid>http://www.blogjava.net/andyelvis/archive/2009/05/20/271628.html</guid><wfw:comment>http://www.blogjava.net/andyelvis/comments/271628.html</wfw:comment><comments>http://www.blogjava.net/andyelvis/archive/2009/05/20/271628.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyelvis/comments/commentRss/271628.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyelvis/services/trackbacks/271628.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 在struts2中有两种方式可以得到这些对象<br><br><br>1、非IoC方式<br><br><br>     要获得上述对象，关键Struts 2中com.opensymphony.xwork2.ActionContext类。我们可以通过它的静态方法getContext()获取当前Action的上下文对象。有了这个对象我们想获得其他几个对象就好办了 <br>ActionContext ctx = ActionContext.getContext();<br>        Map session = ctx.getSession();<br><br>     细心的朋友可以发现这里的session是个map对象在Struts2中底层的session都被封装成了Map类型我们可以直接操作这个map 进行对session的写入和读取操作而不用去直接操作HttpSession对象<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/andyelvis/archive/2009/05/20/271628.html'>阅读全文</a><img src ="http://www.blogjava.net/andyelvis/aggbug/271628.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyelvis/" target="_blank">蒋耘</a> 2009-05-20 00:26 <a href="http://www.blogjava.net/andyelvis/archive/2009/05/20/271628.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>sizeof：对齐问题</title><link>http://www.blogjava.net/andyelvis/archive/2009/05/16/271014.html</link><dc:creator>蒋耘</dc:creator><author>蒋耘</author><pubDate>Sat, 16 May 2009 10:11:00 GMT</pubDate><guid>http://www.blogjava.net/andyelvis/archive/2009/05/16/271014.html</guid><wfw:comment>http://www.blogjava.net/andyelvis/comments/271014.html</wfw:comment><comments>http://www.blogjava.net/andyelvis/archive/2009/05/16/271014.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyelvis/comments/commentRss/271014.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyelvis/services/trackbacks/271014.html</trackback:ping><description><![CDATA[<span  style="font-family: 'Times New Roman'; line-height: 18px; "><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">因为对齐问题使结构体的</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">sizeof</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">变得比较复杂，看下面的例子：</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">(</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">默认对齐方式下</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">)</span></span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; "><br />
<br />
<span class="tpccontent1">struct s1</span><br />
<span class="tpccontent1">{</span><br />
<span class="tpccontent1">char a;</span><br />
<span class="tpccontent1">double b;</span><br />
<span class="tpccontent1">int c;</span><br />
<span class="tpccontent1">char d;&#160;</span><br />
<span class="tpccontent1">};</span><br />
<br />
<span class="tpccontent1">struct s2</span><br />
<span class="tpccontent1">{</span><br />
<span class="tpccontent1">char a;</span><br />
<span class="tpccontent1">char b;</span><br />
<span class="tpccontent1">int c;</span><br />
<span class="tpccontent1">double d;</span><br />
<span class="tpccontent1">};</span><br />
<br />
<span class="tpccontent1">cout&lt;&lt;sizeof(s1)&lt;&lt;endl; // 24</span><br />
<span class="tpccontent1">cout&lt;&lt;sizeof(s2)&lt;&lt;endl; // 16</span><br />
<br />
<span class="tpccontent1">&#160;&#160;</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">同样是两个</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">char</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">类型，一个</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">int</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">类型，一个</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">double</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">类型，但是因为对界问题，导致他们的大小不同。计算结构体大小可以采用元素摆放法，我举例子说明一下：首先，</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">CPU</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">判断结构体的对界，根据上一节的结论，</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">和</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s2</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的对界都取最大的元素类型，也就是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">double</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">类型的对界</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">。然后开始摆放每个元素。</span></span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; "><br />
<span class="tpccontent1">&#160;&#160;</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">对于</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，首先把</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">a</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">放到</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的对界，假定是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">0</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，此时下一个空闲的地址是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，但是下一个元素</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">d</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">double</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">类型，要放到</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的对界上，离</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">最接近的地址是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">了，所以</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">d</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">被放在了</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，此时下一个空闲地址变成了</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">16</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，下一个元素</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">c</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的对界是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">4</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">16</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">可以满足，所以</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">c</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">放在了</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">16</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，此时下一个空闲地址变成了</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">20</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，下一个元素</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">d</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">需要对界</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，也正好落在对界上，所以</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">d</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">放在了</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">20</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，结构体在地址</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">21</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">处结束。由于</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的大小需要是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的倍数，所以</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">21-23</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的空间被保留，</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的大小变成了</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">24</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">。</span></span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; "><br />
<span class="tpccontent1">&#160;&#160;</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">对于</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s2</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，首先把</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">a</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">放到</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的对界，假定是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">0</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，此时下一个空闲地址是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，下一个元素的对界也是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，所以</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">b</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">摆放在</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，下一个空闲地址变成了</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">2</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">；下一个元素</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">c</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的对界是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">4</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，所以取离</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">2</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">最近的地址</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">4</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">摆放</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">c</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，下一个空闲地址变成了</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，下一个元素</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">d</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的对界是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，所以</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">d</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">摆放在</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，所有元素摆放完毕，结构体在</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">15</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">处结束，占用总空间为</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">16</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，正好是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的倍数。</span></span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; "><br />
<br />
<span class="tpccontent1">&#160;&#160;</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">这里有个陷阱，对于结构体中的结构体成员，不要认为它的对齐方式就是他的大小，看下面的例子：</span></span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; "><br />
<br />
<span class="tpccontent1">struct s1</span><br />
<span class="tpccontent1">{</span><br />
<span class="tpccontent1">char a[8];</span><br />
<span class="tpccontent1">};</span><br />
<br />
<span class="tpccontent1">struct s2</span><br />
<span class="tpccontent1">{</span><br />
<span class="tpccontent1">double d;</span><br />
<span class="tpccontent1">};</span><br />
<br />
<span class="tpccontent1">struct s3</span><br />
<span class="tpccontent1">{</span><br />
<span class="tpccontent1">s1 s;</span><br />
<span class="tpccontent1">char a;</span><br />
<span class="tpccontent1">};</span><br />
<br />
<span class="tpccontent1">struct s4</span><br />
<span class="tpccontent1">{</span><br />
<span class="tpccontent1">s2 s;</span><br />
<span class="tpccontent1">char a;&#160;</span><br />
<span class="tpccontent1">};</span><br />
<br />
<span class="tpccontent1">cout&lt;&lt;sizeof(s1)&lt;&lt;endl; // 8</span><br />
<span class="tpccontent1">cout&lt;&lt;sizeof(s2)&lt;&lt;endl; // 8</span><br />
<span class="tpccontent1">cout&lt;&lt;sizeof(s3)&lt;&lt;endl; // 9</span><br />
<span class="tpccontent1">cout&lt;&lt;sizeof(s4)&lt;&lt;endl; // 16;</span><br />
<br />
<span class="tpccontent1">&#160; s1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">和</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s2</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">大小虽然都是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，但是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">的对齐方式是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">1</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">，</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s2</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">是</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">8</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">（</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">double</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">），所以在</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s3</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">和</span></span><span class="tpccontent1"><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; ">s4</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">中才有这样的差异。</span></span><span lang="EN-US" style="font-size: 10pt; color: black; font-family: Verdana; "><br />
<br />
<span class="tpccontent1">&#160;&#160;</span></span><span class="tpccontent1"><span style="font-size: 10pt; color: black; font-family: 宋体; ">所以，在自己定义结构体的时候，如果空间紧张的话，最好考虑对齐因素来排列结构体里的元素。</span></span></span>
<img src ="http://www.blogjava.net/andyelvis/aggbug/271014.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyelvis/" target="_blank">蒋耘</a> 2009-05-16 18:11 <a href="http://www.blogjava.net/andyelvis/archive/2009/05/16/271014.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>同步/异步与阻塞/非阻塞的区别(转)</title><link>http://www.blogjava.net/andyelvis/archive/2009/05/16/271012.html</link><dc:creator>蒋耘</dc:creator><author>蒋耘</author><pubDate>Sat, 16 May 2009 10:07:00 GMT</pubDate><guid>http://www.blogjava.net/andyelvis/archive/2009/05/16/271012.html</guid><wfw:comment>http://www.blogjava.net/andyelvis/comments/271012.html</wfw:comment><comments>http://www.blogjava.net/andyelvis/archive/2009/05/16/271012.html#Feedback</comments><slash:comments>2</slash:comments><wfw:commentRss>http://www.blogjava.net/andyelvis/comments/commentRss/271012.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyelvis/services/trackbacks/271012.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 首先来解释同步和异步的概念,这两个概念与消息的通知机制有关.<br><br>举个例子,比如我去银行办理业务,可能选择排队等候,也可能取一个小纸条上面有我的号码,等到排到我这一号时由柜台的人通知我轮到我去办理业务了.<br>前者(排队等候)就是同步等待消息,而后者(等待别人通知)就是异步等待消息.在异步消息处理中,等待消息者(在这个例子中就是等待办理业务的人)往往注册一个回调机制,在所等待的事件被触发时由触发机制(在这里是柜台的人)通过某种机制(在这里是写在小纸条上的号码)找到等待该事件的人.<br>而在实际的程序中,同步消息处理就好比简单的read/write操作,它们需要等待这两个操作成功才能返回;而异步处理机制就是类似于select/poll之类的多路复用IO操作,当所关注的消息被触发时,由消息触发机制通知触发对消息的处理.&nbsp;&nbsp;<a href='http://www.blogjava.net/andyelvis/archive/2009/05/16/271012.html'>阅读全文</a><img src ="http://www.blogjava.net/andyelvis/aggbug/271012.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyelvis/" target="_blank">蒋耘</a> 2009-05-16 18:07 <a href="http://www.blogjava.net/andyelvis/archive/2009/05/16/271012.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于VC2008下提示找不到MSVCP90D.dll的解决办法</title><link>http://www.blogjava.net/andyelvis/archive/2009/05/15/270945.html</link><dc:creator>蒋耘</dc:creator><author>蒋耘</author><pubDate>Fri, 15 May 2009 14:21:00 GMT</pubDate><guid>http://www.blogjava.net/andyelvis/archive/2009/05/15/270945.html</guid><wfw:comment>http://www.blogjava.net/andyelvis/comments/270945.html</wfw:comment><comments>http://www.blogjava.net/andyelvis/archive/2009/05/15/270945.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyelvis/comments/commentRss/270945.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyelvis/services/trackbacks/270945.html</trackback:ping><description><![CDATA[<p align="left"><font size="2" face="Arial">Same problem MSCVP90D.dill not found,</font></p>
<p align="left"><font size="2" face="Arial">went to "Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library"</font></p>
<p><font size="2" face="Arial">and set Multi-threaded Debug (/MTd)</font></p>
<p align="left"><font size="2" face="Arial">did build generated error messages...</font></p>
<p align="left"><font size="2" face="Arial">then reset</font></p>
<p align="left"><font size="2" face="Arial">"Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library"</font></p>
<p align="left"><font size="2" face="Arial">to</font></p>
<p align="left"><font size="2" face="Arial">Multi-threaded Debug DLL (/MDd)</font></p>
<img src ="http://www.blogjava.net/andyelvis/aggbug/270945.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyelvis/" target="_blank">蒋耘</a> 2009-05-15 22:21 <a href="http://www.blogjava.net/andyelvis/archive/2009/05/15/270945.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>关于SQL 数据库表中的聚集索引和非聚集索引等（转）</title><link>http://www.blogjava.net/andyelvis/archive/2009/05/14/270680.html</link><dc:creator>蒋耘</dc:creator><author>蒋耘</author><pubDate>Thu, 14 May 2009 11:19:00 GMT</pubDate><guid>http://www.blogjava.net/andyelvis/archive/2009/05/14/270680.html</guid><wfw:comment>http://www.blogjava.net/andyelvis/comments/270680.html</wfw:comment><comments>http://www.blogjava.net/andyelvis/archive/2009/05/14/270680.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/andyelvis/comments/commentRss/270680.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyelvis/services/trackbacks/270680.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 1.概念<br>         索引是在数据库表或者视图上创建的对象，目的是为了加快对表或视图的查询的速度（简单理解）。<br>         索引是一个单独的、物理的数据库结构，它是某个表中一列或若干列值的集合和相应的指向表中物理标识这些值的数据页的逻辑指针清单（深刻理解）。 <br>         按照存储方式分为：聚集与非聚集索引（需要重视和区别的概念，后面详解）<br>         按照维护与管理索引角度分为：唯一索引、复合索引和系统自动创建的索引（相对简单，如下解释：）<br>         1).唯一索引：惟一索引可以确保索引列不包含重复的值.<br>         可以用多个列，但是索引可以确保索引列中每个值组合都是唯一的，<br>         即下面的姓不能有重复，同时名也不能有重复：<br>                                             姓      名<br>                                             李      二<br>        &nbsp;&nbsp;<a href='http://www.blogjava.net/andyelvis/archive/2009/05/14/270680.html'>阅读全文</a><img src ="http://www.blogjava.net/andyelvis/aggbug/270680.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyelvis/" target="_blank">蒋耘</a> 2009-05-14 19:19 <a href="http://www.blogjava.net/andyelvis/archive/2009/05/14/270680.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>数据库的索引</title><link>http://www.blogjava.net/andyelvis/archive/2009/05/14/270520.html</link><dc:creator>蒋耘</dc:creator><author>蒋耘</author><pubDate>Wed, 13 May 2009 16:41:00 GMT</pubDate><guid>http://www.blogjava.net/andyelvis/archive/2009/05/14/270520.html</guid><wfw:comment>http://www.blogjava.net/andyelvis/comments/270520.html</wfw:comment><comments>http://www.blogjava.net/andyelvis/archive/2009/05/14/270520.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyelvis/comments/commentRss/270520.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyelvis/services/trackbacks/270520.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 索引 <br><br>使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构，例如 employee 表的姓（lname）列。如果要按姓查找特定职员，与必须搜索表中的所有行相比，索引会帮助您更快地获得该信息。<br><br>索引提供指向存储在表的指定列中的数据值的指针，然后根据您指定的排序顺序对这些指针排序。数据库使用索引的方式与您使用书籍中的索引的方式很相似：它搜索索引以找到特定值，然后顺指针找到包含该值的行。<br><br>在数据库关系图中，您可以在选定表的“索引/键”属性页中创建、编辑或删除每个索引类型。当保存索引所附加到的表，或保存该表所在的关系图时，索引将保存在数据库中。有关详细信息，请参见创建索引。<br><br>注意;并非所有的数据库都以相同的方式使用索引。有关更多信息，请参见数据库服务器注意事项，或者查阅数据库文档。 <br>作为通用规则，只有当经常查询索引列中的数据时，才需要在表上创建索引。索引占用磁盘空间，并且降低添加、删除和更新行的速度。在多数情况下，索引用于数据检索的速度优势大大超过它的。&nbsp;&nbsp;<a href='http://www.blogjava.net/andyelvis/archive/2009/05/14/270520.html'>阅读全文</a><img src ="http://www.blogjava.net/andyelvis/aggbug/270520.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyelvis/" target="_blank">蒋耘</a> 2009-05-14 00:41 <a href="http://www.blogjava.net/andyelvis/archive/2009/05/14/270520.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>单向链表反转（转）</title><link>http://www.blogjava.net/andyelvis/archive/2009/05/12/270258.html</link><dc:creator>蒋耘</dc:creator><author>蒋耘</author><pubDate>Tue, 12 May 2009 09:51:00 GMT</pubDate><guid>http://www.blogjava.net/andyelvis/archive/2009/05/12/270258.html</guid><wfw:comment>http://www.blogjava.net/andyelvis/comments/270258.html</wfw:comment><comments>http://www.blogjava.net/andyelvis/archive/2009/05/12/270258.html#Feedback</comments><slash:comments>1</slash:comments><wfw:commentRss>http://www.blogjava.net/andyelvis/comments/commentRss/270258.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyelvis/services/trackbacks/270258.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: 单向链表反转算法&nbsp;&nbsp;<a href='http://www.blogjava.net/andyelvis/archive/2009/05/12/270258.html'>阅读全文</a><img src ="http://www.blogjava.net/andyelvis/aggbug/270258.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyelvis/" target="_blank">蒋耘</a> 2009-05-12 17:51 <a href="http://www.blogjava.net/andyelvis/archive/2009/05/12/270258.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>TCP/IP协议头部结构体(转)</title><link>http://www.blogjava.net/andyelvis/archive/2009/05/12/270219.html</link><dc:creator>蒋耘</dc:creator><author>蒋耘</author><pubDate>Tue, 12 May 2009 07:37:00 GMT</pubDate><guid>http://www.blogjava.net/andyelvis/archive/2009/05/12/270219.html</guid><wfw:comment>http://www.blogjava.net/andyelvis/comments/270219.html</wfw:comment><comments>http://www.blogjava.net/andyelvis/archive/2009/05/12/270219.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyelvis/comments/commentRss/270219.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyelvis/services/trackbacks/270219.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: // i386 is little_endian.<br>#ifndef LITTLE_ENDIAN<br>#define LITTLE_ENDIAN   (1)   //BYTE ORDER<br>#else<br>#error Redefine LITTLE_ORDER<br>#endif&nbsp;&nbsp;<a href='http://www.blogjava.net/andyelvis/archive/2009/05/12/270219.html'>阅读全文</a><img src ="http://www.blogjava.net/andyelvis/aggbug/270219.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyelvis/" target="_blank">蒋耘</a> 2009-05-12 15:37 <a href="http://www.blogjava.net/andyelvis/archive/2009/05/12/270219.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++虚函数表解析(转) </title><link>http://www.blogjava.net/andyelvis/archive/2009/05/09/269778.html</link><dc:creator>蒋耘</dc:creator><author>蒋耘</author><pubDate>Sat, 09 May 2009 08:53:00 GMT</pubDate><guid>http://www.blogjava.net/andyelvis/archive/2009/05/09/269778.html</guid><wfw:comment>http://www.blogjava.net/andyelvis/comments/269778.html</wfw:comment><comments>http://www.blogjava.net/andyelvis/archive/2009/05/09/269778.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.blogjava.net/andyelvis/comments/commentRss/269778.html</wfw:commentRss><trackback:ping>http://www.blogjava.net/andyelvis/services/trackbacks/269778.html</trackback:ping><description><![CDATA[&nbsp;&nbsp;&nbsp;&nbsp; 摘要: C++中的虚函数的作用主要是实现了多态的机制。关于多态，简而言之就是用父类型别的指针指向其子类的实例，然后通过父类的指针调用实际子类的成员函数。这种技术可以让父类的指针有“多种形态”，这是一种泛型技术。所谓泛型技术，说白了就是试图使用不变的代码来实现可变的算法。比如：模板技术，RTTI技术，虚函数技术，要么是试图做到在编译时决议，要么试图做到运行时决议。 <br><br>关于虚函数的使用方法，我在这里不做过多的阐述。大家可以看看相关的C++的书籍。在这篇文章中，我只想从虚函数的实现机制上面为大家 一个清晰的剖析。 <br><br>当然，相同的文章在网上也出现过一些了，但我总感觉这些文章不是很容易阅读，大段大段的代码，没有图片，没有详细的说明，没有比较，没有举一反三。不利于学习和阅读，所以这是我想写下这篇文章的原因。也希望大家多给我提意见。 <br><br>言归正传，让我们一起进入虚函数的世界。<br>&nbsp;&nbsp;<a href='http://www.blogjava.net/andyelvis/archive/2009/05/09/269778.html'>阅读全文</a><img src ="http://www.blogjava.net/andyelvis/aggbug/269778.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.blogjava.net/andyelvis/" target="_blank">蒋耘</a> 2009-05-09 16:53 <a href="http://www.blogjava.net/andyelvis/archive/2009/05/09/269778.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>