注冊 | 登錄讀書好,好讀書,讀好書!
讀書網-DuShu.com
當前位置: 首頁出版圖書科學技術計算機/網絡軟件與程序設計C/C++及其相關跨平臺軟件開發(fā)—C & C++

跨平臺軟件開發(fā)—C & C++

跨平臺軟件開發(fā)—C & C++

定 價:¥29.80

作 者: Brian
出版社: 清華大學出版社
叢編項:
標 簽: C++

ISBN: 9787302139072 出版時間: 2006-01-01 包裝: 平裝
開本: 16 頁數(shù): 198 字數(shù):  

內容簡介

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

作者簡介

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

圖書目錄

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

本目錄推薦

掃描二維碼
Copyright ? 讀書網 m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號 鄂公網安備 42010302001612號