2009年5月15日

          一個找出素數(shù)的程序

          找出0到cap范圍內(nèi)的素數(shù):
          void primes(int cap)
          {
          int i, j, composite;
          for(i = 2; i < cap; ++i) {
          composite = 0;
          for(j = 2; j * j < i; ++j) {
          composite += !(i % j);
          }
          if(!composite){
          printf("%d\t", i);
          }
          }
          }
          int main()
          {
          primes(100);
          }
          

          posted @ 2009-05-31 12:03 蔣耘 閱讀(385) | 評論 (1)編輯 收藏

          struts2中獲得request response session對象(轉)

               摘要: 在struts2中有兩種方式可以得到這些對象


          1、非IoC方式


          要獲得上述對象,關鍵Struts 2中com.opensymphony.xwork2.ActionContext類。我們可以通過它的靜態(tài)方法getContext()獲取當前Action的上下文對象。有了這個對象我們想獲得其他幾個對象就好辦了
          ActionContext ctx = ActionContext.getContext();
          Map session = ctx.getSession();

          細心的朋友可以發(fā)現(xiàn)這里的session是個map對象在Struts2中底層的session都被封裝成了Map類型我們可以直接操作這個map 進行對session的寫入和讀取操作而不用去直接操作HttpSession對象
            閱讀全文

          posted @ 2009-05-20 00:26 蔣耘 閱讀(776) | 評論 (0)編輯 收藏

          sizeof:對齊問題

          因為對齊問題使結構體的sizeof變得比較復雜,看下面的例子:(默認對齊方式下)

          struct s1
          {
          char a;
          double b;
          int c;
          char d; 
          };

          struct s2
          {
          char a;
          char b;
          int c;
          double d;
          };

          cout<<sizeof(s1)<<endl; // 24
          cout<<sizeof(s2)<<endl; // 16

            
          同樣是兩個char類型,一個int類型,一個double類型,但是因為對界問題,導致他們的大小不同。計算結構體大小可以采用元素擺放法,我舉例子說明一下:首先,CPU判斷結構體的對界,根據(jù)上一節(jié)的結論,s1s2的對界都取最大的元素類型,也就是double類型的對界8。然后開始擺放每個元素。
            
          對于s1,首先把a放到8的對界,假定是0,此時下一個空閑的地址是1,但是下一個元素ddouble類型,要放到8的對界上,離1最接近的地址是8了,所以d被放在了8,此時下一個空閑地址變成了16,下一個元素c的對界是416可以滿足,所以c放在了16,此時下一個空閑地址變成了20,下一個元素d需要對界1,也正好落在對界上,所以d放在了20,結構體在地址21處結束。由于s1的大小需要是8的倍數(shù),所以21-23的空間被保留,s1的大小變成了24
            
          對于s2,首先把a放到8的對界,假定是0,此時下一個空閑地址是1,下一個元素的對界也是1,所以b擺放在1,下一個空閑地址變成了2;下一個元素c的對界是4,所以取離2最近的地址4擺放c,下一個空閑地址變成了8,下一個元素d的對界是8,所以d擺放在8,所有元素擺放完畢,結構體在15處結束,占用總空間為16,正好是8的倍數(shù)。

            
          這里有個陷阱,對于結構體中的結構體成員,不要認為它的對齊方式就是他的大小,看下面的例子:

          struct s1
          {
          char a[8];
          };

          struct s2
          {
          double d;
          };

          struct s3
          {
          s1 s;
          char a;
          };

          struct s4
          {
          s2 s;
          char a; 
          };

          cout<<sizeof(s1)<<endl; // 8
          cout<<sizeof(s2)<<endl; // 8
          cout<<sizeof(s3)<<endl; // 9
          cout<<sizeof(s4)<<endl; // 16;

            s1
          s2大小雖然都是8,但是s1的對齊方式是1s28double),所以在s3s4中才有這樣的差異。

            
          所以,在自己定義結構體的時候,如果空間緊張的話,最好考慮對齊因素來排列結構體里的元素。

          posted @ 2009-05-16 18:11 蔣耘 閱讀(666) | 評論 (0)編輯 收藏

          同步/異步與阻塞/非阻塞的區(qū)別(轉)

               摘要: 首先來解釋同步和異步的概念,這兩個概念與消息的通知機制有關.

          舉個例子,比如我去銀行辦理業(yè)務,可能選擇排隊等候,也可能取一個小紙條上面有我的號碼,等到排到我這一號時由柜臺的人通知我輪到我去辦理業(yè)務了.
          前者(排隊等候)就是同步等待消息,而后者(等待別人通知)就是異步等待消息.在異步消息處理中,等待消息者(在這個例子中就是等待辦理業(yè)務的人)往往注冊一個回調(diào)機制,在所等待的事件被觸發(fā)時由觸發(fā)機制(在這里是柜臺的人)通過某種機制(在這里是寫在小紙條上的號碼)找到等待該事件的人.
          而在實際的程序中,同步消息處理就好比簡單的read/write操作,它們需要等待這兩個操作成功才能返回;而異步處理機制就是類似于select/poll之類的多路復用IO操作,當所關注的消息被觸發(fā)時,由消息觸發(fā)機制通知觸發(fā)對消息的處理.  閱讀全文

          posted @ 2009-05-16 18:07 蔣耘 閱讀(6272) | 評論 (2)編輯 收藏

          關于VC2008下提示找不到MSVCP90D.dll的解決辦法

          Same problem MSCVP90D.dill not found,

          went to "Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library"

          and set Multi-threaded Debug (/MTd)

          did build generated error messages...

          then reset

          "Project | Game Properties | Configuration Properties | C/C++ | Code Generation | Runtime Library"

          to

          Multi-threaded Debug DLL (/MDd)

          posted @ 2009-05-15 22:21 蔣耘 閱讀(1095) | 評論 (0)編輯 收藏

          <2009年5月>
          262728293012
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統(tǒng)計

          常用鏈接

          留言簿(2)

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 洪雅县| 新郑市| 韩城市| 洮南市| 疏勒县| 青冈县| 蕉岭县| 伊金霍洛旗| 高阳县| 大英县| 阿图什市| 昌图县| 台前县| 忻城县| 兴仁县| 浦县| 石屏县| 德保县| 安阳县| 厦门市| 朔州市| 玉门市| 屯昌县| 中牟县| 盖州市| 桑日县| 上杭县| 乌苏市| 永城市| 汾西县| 永寿县| 连城县| 弥勒县| 满洲里市| 泸州市| 正镶白旗| 金沙县| 泾阳县| 忻州市| 寿光市| 青州市|