• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            syhd142  
            日歷
            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345
            統計
            • 隨筆 - 23
            • 文章 - 122
            • 評論 - 31
            • 引用 - 0

            導航

            常用鏈接

            留言簿(2)

            隨筆檔案(23)

            文章分類(270)

            文章檔案(122)

            我的豆瓣

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

             
            void[1]:
            void是C語言中的空類型,void的用途有二。
            1、對函數返回的限定;
                  如果函數沒有返回值,則默認返回整數類型,而不是void類型。c++有很嚴格的類型,不允許函數不加類型聲明,而編譯器則不這么認為檢查這一點在VC6.0中可以驗證。所以在編寫代碼的時候,每個函數都應該加上返回類型。
            2、對函數參數的限定;
                  在c++中,函數參數為void意味著不接受參數,但是在c語言中可以給無參數的函數傳遞任意類型的參數,這點在turbo c中可以驗證。

            指針的大小和機器的位數有關,在32位機器上任何類型指針的大小都是4字節,在64位機器上為8。所以指針大小和類型無關。
            void*就是空類型指針,所謂空類型指針就是通用指針類型。它有以下特點。
            1、按照ASC碼標準void指針不能做算術操作,因為不確定其指向數據類型大??;
            2、c++允許將任何類型的指針賦給void*,但是不允許void指針賦值給其它類型。必須顯示的強制轉換。

            其它類型指針相互之間是否也可以強制裝換?
               強制轉換后編譯能通過,大部分情況下運行也是沒有問題的,但是根據參考文獻[4]的說法是容易出問題的,因為某些CPU對某些數據類型有對其限制,這樣在做指針強制轉換的時候就容易出現問題。
               其實,其它類型指針之間的轉換完全可以通過使用void*類型來避免。

            sizeof[2]:

            前面說在同一臺機器上指針大小是固定的,通過sizeof測試int*,char*,bool*,double*都出結果都是4(32位機器測試)。
            今天在程序中memset一個T*類型的指針,發現沒有初始化成功,原來在memset的第三個參數中填的是sizeof(T*類型的指針)。特此總結了一下sizeof的一些問題。
            1、char* s="0123456789";
                  sizeof(s)=4,s是一個指針。
                  sizeof(*s)=1,*s是第一個元素。
                  strlen(s)=10,s是字符串首地址。
            2、char s[]="0123456789";
                  sizeof(s)=11,s是字符串數組,包括'\0'。
                  sizeof(*s)=1,*s是第一個元素。
                  strlen(s)=10,s是字符串首地址。
            3、char s[20]="0123456789";
                  sizeof(s)=20,s是在內存中靜態分配的大小。
                  sizeof(*s)=1,*s是第一個元素。
                  strlen(s)=10,s是字符串首地址。

            結構體[3]:

            結構體在字節對齊的時候有三個原則,有了這三個原則就很容易的可以計算出任意一個結構體的sizeof大小了。
            1、結構體變量的首地址能夠被其最寬基本類型的成員大小所整除;
            2、結構體每個成員相對于結構體首地址的偏移量(offset)都是成員大小的整數倍,如有需要編譯器會在成員之間加上填充字節(internal adding);
            3、結構體的總大小為結構體最寬基本類型成員大小的整數倍,如有需要編譯器會在最末一個成員之后加上填充字節(trailing padding)。

            參考文獻:
            [1]、http://blog.sina.com.cn/s/blog_625cce080100kip3.html
            [2]、http://shansun123.iteye.com/blog/398601 
            [3]、http://blog.csdn.net/Linux_Gao/article/details/2612885 
            [4]、http://blog.csdn.net/Linux_Gao/article/details/2612885
            posted on 2011-08-24 22:48 Fucker 閱讀(950) 評論(0)  編輯 收藏 引用
             
            Copyright © Fucker Powered by: 博客園 模板提供:滬江博客
            国产成人久久久精品二区三区 | 久久综合色老色| 久久国产视屏| 久久亚洲日韩看片无码| 久久久久国产一区二区| 亚洲性久久久影院| 99久久国产综合精品麻豆| 久久www免费人成精品香蕉| 久久精品国产亚洲AV忘忧草18| 久久99精品久久只有精品| 国产一区二区精品久久凹凸| 久久只有这精品99| 国产—久久香蕉国产线看观看| 久久久久se色偷偷亚洲精品av| 99久久国产免费福利| 精品久久人人爽天天玩人人妻| 国产巨作麻豆欧美亚洲综合久久| 亚洲国产另类久久久精品小说 | 2020久久精品亚洲热综合一本| 99久久er这里只有精品18| 久久亚洲精品国产精品婷婷 | 久久亚洲私人国产精品vA| 久久精品国产精品亜洲毛片| 亚洲日韩中文无码久久| 亚洲欧洲中文日韩久久AV乱码| 天天爽天天爽天天片a久久网| 人妻少妇久久中文字幕| 99蜜桃臀久久久欧美精品网站 | 精品国产乱码久久久久久郑州公司| 国产免费久久精品99久久| 国产成人精品久久一区二区三区 | 亚洲va久久久噜噜噜久久天堂 | 久久精品国产乱子伦| 亚洲午夜福利精品久久| 久久久久久av无码免费看大片| 久久被窝电影亚洲爽爽爽| 国产精品对白刺激久久久| 久久人人爽爽爽人久久久| 无码国产69精品久久久久网站| 久久久久久久精品妇女99| 99久久精品免费看国产一区二区三区 |