• <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>
            隨筆 - 55  文章 - 15  trackbacks - 0
            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            常用鏈接

            留言簿

            隨筆分類

            隨筆檔案

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

                   為什么要用C++?效率?安全?可維護(hù)?
                   提高效率,最好的方法是用別人的代碼,即使用庫。只需要導(dǎo)入一個(gè).lib文件或者.dll文件和相應(yīng)的.h文件你就可以用這個(gè)庫中的接口了,這些接口的聲明在.h文件中。如ZThread庫,編譯之后的庫還需要導(dǎo)入你目前的工程中去。
                   一個(gè)庫通常從一組函數(shù)開始。
                   所有語言的核心都是數(shù)據(jù)以及對(duì)數(shù)據(jù)的操作。在c中,處理相關(guān)聯(lián)的數(shù)據(jù)的時(shí)候,就需要將數(shù)據(jù)組織成一個(gè)struct,然后操作這個(gè)struct。當(dāng)操作的時(shí)候,我們面臨兩個(gè)問題:1. 每個(gè)函數(shù)必須包含這個(gè)struct對(duì)象的指針。2. 因?yàn)閟truct中的數(shù)據(jù)可以被其他程序隨意改變。所以可不可以控制這種未知的風(fēng)險(xiǎn)呢?
                  編譯時(shí),在棧上創(chuàng)建一個(gè)變量,則該變量的存儲(chǔ)單元由編譯器自動(dòng)開辟和釋放。編譯器準(zhǔn)確地知道需要多少存儲(chǔ)容量,知道其變量的生命周期。而動(dòng)態(tài)分配的內(nèi)存,編譯器不知道需要多少存儲(chǔ)單元,不知道生命周期,也不能自動(dòng)清除。
                  在c中,在使用Struct時(shí)必須包含聲明該結(jié)構(gòu)體的頭文件,不然,編譯器不能正確地猜測(cè)這個(gè)結(jié)構(gòu)像什么,但是它能猜測(cè)一個(gè)函數(shù)像什么。在頭文件中聲明是特別重要的,因?yàn)樵诎^文件的任何地方,編譯器準(zhǔn)確地知道做什么。例如,如果在頭文件中的一個(gè)聲明是void func(float),編譯器就知道,如果用一個(gè)整型參數(shù)調(diào)用這個(gè)函數(shù),應(yīng)該把這個(gè)參數(shù)轉(zhuǎn)化為浮點(diǎn)型。如果沒有聲明,c編譯器簡單地假設(shè)有一個(gè)func(int)存在,它不會(huì)做轉(zhuǎn)換。
                  對(duì)于每個(gè)翻譯單元,編譯器創(chuàng)造一個(gè)目標(biāo)文件。這些目標(biāo)文件,連同必要的啟動(dòng)代碼,由連接器連接為可執(zhí)行程序。在連接過程中,應(yīng)當(dāng)確定所有的外部引用。當(dāng)連接器將所有的目標(biāo)文件放在一起時(shí),它必須取未確定的外部引用,找出他們實(shí)際訪問的地址。在執(zhí)行過程中用這些地址替換這些外部引用。所以,早綁定發(fā)生在連接階段。

                 c語言中,使用庫的最大障礙之一是名字沖突。編譯器和連接器不允許出現(xiàn)兩個(gè)名字相同的函數(shù),解決的辦法是在名字前面加點(diǎn)東西以區(qū)別不同的函數(shù)。
                 邁向C++的第一步,把函數(shù)放在結(jié)構(gòu)體中,用結(jié)構(gòu)體限制函數(shù)名,相當(dāng)于隱藏了名字。
                 c和C++的不同:頭文件中的聲明是編譯器要求的。
                 抽象數(shù)據(jù)類型,又可以成為用戶自定義類型。
            頭文件的重要性:
                 頭文件是我們和我們的庫用戶之間的合約。這份合約描述了我們的數(shù)據(jù)結(jié)構(gòu),為函數(shù)調(diào)用規(guī)定了參數(shù)和返回值,編譯器需要這些信息以生成正確的代碼。
                 放什么到頭文件中?只限于聲明,不涉及分配存儲(chǔ)的任何信息。
                 多次聲明的問題。
                 編譯器認(rèn)為重聲明結(jié)構(gòu)體是一個(gè)錯(cuò)誤。C++允許重聲明函數(shù)。只要兩個(gè)聲明匹配即可。使用#pragma once 或者#ifndef #define #endif
            posted on 2012-05-29 13:19 Dino-Tech 閱讀(156) 評(píng)論(0)  編輯 收藏 引用

            只有注冊(cè)用戶登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問   Chat2DB   管理


            无码人妻精品一区二区三区久久 | 亚洲AV无码久久精品成人| 四虎影视久久久免费观看| 久久精品视频一| 久久精品aⅴ无码中文字字幕不卡 久久精品aⅴ无码中文字字幕重口 | 91精品国产高清久久久久久91| 99久久99久久精品国产片| 久久亚洲精品无码播放| 久久久www免费人成精品| 91麻豆精品国产91久久久久久 | 久久99国产精品久久99果冻传媒| 国产精品99久久精品爆乳| 亚洲伊人久久大香线蕉综合图片 | 国产精品一区二区久久国产| 久久高潮一级毛片免费| 99久久无码一区人妻a黑| 久久国内免费视频| 国产亚洲美女精品久久久久狼| 午夜肉伦伦影院久久精品免费看国产一区二区三区 | 2021国产精品久久精品| 久久综合九色综合欧美狠狠| 久久人人爽人人人人片av| 国产综合成人久久大片91| 欧美一区二区三区久久综合| 亚洲精品无码久久久久AV麻豆| 大美女久久久久久j久久| 东京热TOKYO综合久久精品| 精品国产99久久久久久麻豆| 亚洲国产成人精品91久久久| 91久久精品国产成人久久| 欧美激情精品久久久久| 色综合久久最新中文字幕| 成人国内精品久久久久影院| 2021国产精品午夜久久| 久久久高清免费视频| 偷窥少妇久久久久久久久| 色噜噜狠狠先锋影音久久| 久久久久综合网久久| 国产精品久久久亚洲| 久久精品九九亚洲精品| 亚洲精品无码专区久久同性男|