注冊(cè) | 登錄讀書(shū)好,好讀書(shū),讀好書(shū)!
讀書(shū)網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書(shū)科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)跨平臺(tái)軟件開(kāi)發(fā)—C & C++

跨平臺(tái)軟件開(kāi)發(fā)—C & C++

跨平臺(tái)軟件開(kāi)發(fā)—C & C++

定 價(jià):¥29.80

作 者: Brian
出版社: 清華大學(xué)出版社
叢編項(xiàng):
標(biāo) 簽: C++

ISBN: 9787302139072 出版時(shí)間: 2006-01-01 包裝: 平裝
開(kāi)本: 16 頁(yè)數(shù): 198 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書(shū)主要內(nèi)容:(1)如何在開(kāi)始新項(xiàng)目時(shí)就避免常見(jiàn)的可移植性錯(cuò)誤,以便在進(jìn)行移植時(shí)能夠節(jié)省時(shí)間;?。?)如何重構(gòu)無(wú)法移植的現(xiàn)有代碼,使之能夠很容易地移植到新的平臺(tái)上;?。?)如何發(fā)現(xiàn)由特定平臺(tái)行為所屏蔽的Bug?!∪绻浖慌c某一具體平臺(tái)捆綁在一起,程序員就可以極大地?cái)U(kuò)展其產(chǎn)品的目標(biāo)市場(chǎng)。無(wú)論您是從頭開(kāi)始設(shè)計(jì)跨平臺(tái)的軟件,還是將大量的代碼從一種平臺(tái)移植到另一種平臺(tái)上,本書(shū)中所包含的信息都將幫助您達(dá)到目標(biāo),并且使您成長(zhǎng)為一名真正的程序員。

作者簡(jiǎn)介

  Brian Hook是一位專業(yè)的軟件開(kāi)發(fā)人員和作者,主要在游戲和娛樂(lè)產(chǎn)業(yè)界工作。在id software公司、3Dfx Interactive公司和Pyrogon公司中開(kāi)發(fā)跨平臺(tái)軟件的經(jīng)驗(yàn),讓他能從獨(dú)特的視角來(lái)分析跨越平臺(tái)軟件的開(kāi)發(fā)過(guò)程。

圖書(shū)目錄

第1章  可移植性概念    1
1.1  可移植性是一種考慮問(wèn)題的方
式,而不是一種狀態(tài)    1
1.2  培養(yǎng)良好的可移植性編程
習(xí)慣    2
1.3  良好的習(xí)慣勝過(guò)故障或標(biāo)準(zhǔn)
的具體知識(shí)    2
1.3.1  盡早經(jīng)常移植    3
1.3.2  在不同的環(huán)境中開(kāi)發(fā)    3
1.3.3  使用不同的編譯器    4
1.3.4  在多個(gè)平臺(tái)上進(jìn)行測(cè)試    4
1.3.5  支持多個(gè)程序庫(kù)    4
1.4  為新項(xiàng)目規(guī)劃可移植性    5
1.4.1  使可移植性變得容易    5
1.4.2  選擇可移植性的合理水平    5
1.4.3  不要將項(xiàng)目變成專有產(chǎn)品    7
1.5  移植舊程序    9
1.5.1  除非程序已經(jīng)被移植,否則
就認(rèn)定該程序是不可移植的    9
1.5.2  只做最低限度必要的改動(dòng)    9
1.5 3  規(guī)劃攻擊目標(biāo)    9
1.5.4  在修改控制程序中記錄每一件事    10
第2章  ANSI C與C++    11
2.1  選擇C和C++語(yǔ)言的理由    11
2.1.1  C和C++提供了低級(jí)訪問(wèn)    11
2.1.2  C與C++編譯成本機(jī)代碼    12
2.2  C與C++的術(shù)語(yǔ)    12
2.3  可移植性與C/C++    13
第3章  可移植性技術(shù)    17
3.1  避免使用新特性    17
3.2  處理變化的特性    18
3.3  使用安全的串行化和反串行化    21
3.4  綜合測(cè)試    23
3.5  使用編譯選項(xiàng)    25
3.5.1  編譯時(shí)斷言    25
3.5.2  嚴(yán)格編譯    26
3.6  從可移植文件中隔離平臺(tái)相關(guān)文件    26
3.7  編寫(xiě)簡(jiǎn)單明了的代碼    27
3.8  使用唯一的名稱    27
3.9  實(shí)現(xiàn)抽象    29
3.9.1  分派抽象    30
3.9.2  抽象數(shù)據(jù)類型(typedef)    35
3.9.3  使用C預(yù)處理程序    37
3.9.4  對(duì)無(wú)法預(yù)料的事情做好準(zhǔn)備    38
3.9.5  傳輸與系統(tǒng)相關(guān)的信息    39
3.9.6  橋接函數(shù)    41
3.10  低級(jí)編程    42
3.10.1  避免使用自修改代碼/動(dòng)態(tài)生成代碼    42
3.10.2  保持高級(jí)后退    46
3.10.3  關(guān)鍵字register    47
3.10.4  外部與嵌入式asm文件    48
第4章  編輯與源代碼控制    51
4.1  文本文件行結(jié)束格式之間的差異    51
4.2  可移植的文件名    53
4.3  源控制    53
4.3.1  源控制系統(tǒng)    54
4.3.2  通過(guò)代理程序遷出    56
4.4  構(gòu)建工具    57
4.4.1  平臺(tái)特有的構(gòu)建工具    57
4.4.2  可移植的構(gòu)建工具    58
4.5  編輯器    61
4.6  本章小結(jié)    62
第5章  處理器的不同之處    63
5.1  對(duì)齊    63
5.2  字節(jié)排序和Endianess    66
5.2.1  Big-Endian值與Little-Endian值的比較    66
5.2.2  標(biāo)準(zhǔn)化存儲(chǔ)格式    68
5.2.3  固定的網(wǎng)絡(luò)字節(jié)排序    69
5.3  帶符號(hào)整數(shù)的表示方法    70
5.4  本地類型的大小    70
5.5  地址空間    74
5.6  本章小結(jié)    75
第6章  浮點(diǎn)    77
6.1  浮點(diǎn)的歷史    77
6.2  標(biāo)準(zhǔn)的C與C++浮點(diǎn)支持    78
6.3  浮點(diǎn)的問(wèn)題    79
6.3.1  不一致的評(píng)估    79
6.3.2  浮點(diǎn)與聯(lián)網(wǎng)應(yīng)用程序    80
6.3.3  轉(zhuǎn)換    81
6.4  定點(diǎn)整數(shù)數(shù)學(xué)    82
6.5  從浮點(diǎn)數(shù)中析取整數(shù)位    82
6.6  實(shí)現(xiàn)查詢    85
6.7  異常結(jié)果    87
6.7.1  特殊值    88
6.7.2  異常    89
6.7.3  浮點(diǎn)環(huán)境訪問(wèn)    89
6.8  存儲(chǔ)格式    90
6.9  本章小結(jié)    91
第7章  預(yù)處理程序    93
7.1  預(yù)定義符號(hào)    93
7.2  頭文件    95
7.2.1  頭文件的路徑規(guī)范    96
7.2.2  頭文件名    96
7.3  配置宏    97
7.4  條件編譯    98
7.5  Pragma    99
7.6  本章小結(jié)    99
第8章  編譯器    101
8.1  結(jié)構(gòu)大小、填充和對(duì)齊    101
8.2  內(nèi)存管理的特性    104
8.2.1  釋放的影響    104
8.2.2  對(duì)齊的內(nèi)存分配    104
8.3  堆棧    105
8.3.1  堆棧的大小    105
8.3.2  alloca()的問(wèn)題    106
8.4  printf()例程    106
8.5  類型尺寸與行為    107
8.5.1  64位整數(shù)類型    107
8.5.2  基本類型的尺寸    108
8.5.3  有符號(hào)與無(wú)符號(hào)的char類型    110
8.5.4  作用如同int的enum    111
8.5.5  數(shù)字常量    112
8.5.6  有符號(hào)與無(wú)符號(hào)的右移    112
8.6  調(diào)用約定    113
8.6.1  名稱修飾    114
8.6.2  函數(shù)指針與回調(diào)    114
8.6.3  可移植性    115
8.7  返回結(jié)構(gòu)    116
8.8  Bitfield    116
8.9  注釋    117
8.10  本章小結(jié)    118
第9章  用戶交互作用    119
9.1  用戶界面的演變    119
9.1.1  命令行    119
9.1.2  窗口系統(tǒng)    120
9.2  本機(jī)GUI與應(yīng)用程序GU的比較    121
9.3  低級(jí)圖形    121
9.4  數(shù)字音頻    122
9.5  輸入    123
9.5.1  鍵盤    123
9.5.2  鼠標(biāo)    123
9.5.3  操縱桿與游戲鍵盤    124
9.6  跨平臺(tái)工具箱    124
9.7  本章小結(jié)    124
第10章  聯(lián)網(wǎng)    125
10.1  網(wǎng)絡(luò)協(xié)議的演化    125
10.2  編程接口    126
10.2.1  套接字    126
10.2.2  RPC(遠(yuǎn)程過(guò)程調(diào)用)與RMI(遠(yuǎn)程方法調(diào)用)    128
10.2.3  分布式對(duì)象    129
10.3  本章小結(jié)    129
第11章  操作系統(tǒng)    131
11.1  操作系統(tǒng)的演化    131
11.2  宿主環(huán)境與獨(dú)立式環(huán)境    132
11.3  操作系統(tǒng)可移植性的悖論    132
11.4  內(nèi)存    133
11.4.1  內(nèi)存限制    133
11.4.2  內(nèi)存映射    133
11.4.3  受保護(hù)內(nèi)存    134
11.5  進(jìn)程與線程    135
11.5.1  進(jìn)程控制與通信函數(shù)    135
11.5.2  IPC(進(jìn)程間通信)    135
11.5.3  多線程技術(shù)    136
11.6  環(huán)境變量    140
11.7  異常處理    141
11.7.1  C異常處理    141
11.7.2  C++異常處理    142
11.8  用戶數(shù)據(jù)存儲(chǔ)    142
11.8.1  Microsoft Windows注冊(cè)表    143
11.8.2  Linux用戶數(shù)據(jù)    144
11.8.3  OS X的首選項(xiàng)    144
11.9  安全與許可    145
11.9.1  應(yīng)用程序安裝    145
11.9.2  特權(quán)目錄與數(shù)據(jù)    145
11.9.3  低級(jí)訪問(wèn)    146
11.10  本章小結(jié)    146
第12章  動(dòng)態(tài)庫(kù)    147
12.1  動(dòng)態(tài)鏈接    147
12.2  動(dòng)態(tài)加載    148
12.3  共享庫(kù)的問(wèn)題(亦稱為DLL
地獄)    148
12.3.1  版本問(wèn)題    148
12.3.2  擴(kuò)散    150
12.4  Gun LGPL    150
12.5  Windows DLL    150
12.6  Linux的共享對(duì)象    153
12.7  Mac OS X架構(gòu)、插件捆綁    154
12.7.1  架構(gòu)    154
12.7.2  捆綁    155
12.7.3  插件    156
12.8  本章小結(jié)    157
第13章  文件系統(tǒng)    159
13.1  符號(hào)鏈接、快捷方式與別名    159
13.1.1  Windows的LNK文件    160
13.1.2  Unix的鏈接    160
13.2  路徑規(guī)范    160
13.2.1  磁盤驅(qū)動(dòng)器與卷說(shuō)明符    161
13.2.2  路徑分隔符與其他特殊字符    161
13.2.3  當(dāng)前目錄    161
13.2.4  路徑長(zhǎng)度    162
13.2.5  區(qū)分大小寫(xiě)    162
13.3  安全性與訪問(wèn)權(quán)限    162
13.4  Macintoch的古怪行為    164
13.5  文件屬性    164
13.6  特殊目錄    164
13.7  文本處理    165
13.8  C運(yùn)行時(shí)庫(kù)與可移植文件訪問(wèn)    165
13.9  本章小結(jié)    166
第14章  可擴(kuò)縮性    167
14.1  較好的算法等于較好的可擴(kuò)縮性    167
14.2  可擴(kuò)縮性的局限性    168
14.3  本章小結(jié)    169
第15章  可移植性與數(shù)據(jù)    171
15.1  應(yīng)用程序數(shù)據(jù)與資源文件    171
15.1.1  二進(jìn)制文件    171
15.1.2  文本文件    171
15.1.3  XML    173
15.1.4  作為數(shù)據(jù)文件的腳本語(yǔ)言    174
15.2  創(chuàng)建可移植的圖形    174
15.3  創(chuàng)建可移植的音頻    175
15.4  本章小結(jié)    175
第16章  國(guó)際化與本地化    177
16.1  字符串與統(tǒng)一代碼標(biāo)準(zhǔn)    177
16.2  貨幣    179
16.3  界面元素    180
16.4  本章小結(jié)    180
第17章  腳本語(yǔ)言    183
17.1  腳本語(yǔ)言的一些缺點(diǎn)    184
17.2  JavaScript/ECMAScript    184
17.3  Python    185
17.4  Lua    186
17.5  Ruby    186
17.6  本章小結(jié)    186
第18章  跨平臺(tái)的程序庫(kù)與工具包    187
18.1  庫(kù)    187
18.2  應(yīng)用程序架構(gòu)    188
18.2.1  Qt    188
18.2.2  GTK+    188
18.2.3  FLTK    188
18.2.4  wxWidgets    189
18.3  本章小結(jié)    189
附錄A  可移植開(kāi)源裝置(POSH)    191
A.1  POSH的預(yù)定義符號(hào)    191
A.2  POSH的固定大小類型    192
A.3  POSH的實(shí)用函數(shù)和宏    193
附錄B  用于可移植性的規(guī)則    197

本目錄推薦

掃描二維碼
Copyright ? 讀書(shū)網(wǎng) ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)