64位作業系統程式設計規範

2021-08-03 14:20:55 字數 867 閱讀 5494

一、 linux及windows主要型別位元組長度

二、 不允許使用long型;

三、 不允許把int強制轉換為指標,反之亦然;下面是錯誤的:int i = (int )ptr; 或: void *ptr = (void *) s32tmp;

四、 不允許在不同型別的指標(有繼承關係除外)進行強制轉換,如:int *iptmp; time_t *tptmp = *iptmp;是錯誤的;

五、 強烈建議使用帶長度的型別,如:sint32/uint64等;

六、 必須使用%p列印指標,如printf(「this[%p]\n」,this);

七、 強烈建議不要採用scanf,scanf非常危險,format和引數型別不一致時,非常容易導致越界寫。如果必須使用,則必須認真區別32和64位的作業系統整數長度的差別,需要時,分別針對32和64位編寫**;

八、 如果編寫動態鏈結庫,必須加上–fpic編譯選項;

九、 採用gcc編譯器時,必須使用-wlong-long、-wformat -wpointer-arith 來發現 64 位編譯問題,並關注相關警告資訊;

一十、 編譯器指示巨集定義

一十一、 巨集使用說明:

● 我們的**要求同時支援32位和64位版本;

● 盡量不要使用與架構相關的巨集,如i386/ x86-64/_x86_/win32等,在同一作業系統中,api一般與架構無關,這樣可以讓**具有良好的移植性;

● 我們的軟體主要在類unix(符合posix規範,包括linux)和windows下執行,優先使用_posix_作為區別非windows作業系統;

● 如果對準備使用的類unix下系統呼叫(api)是否支援其它作業系統沒有把握,可使用_posix_加以標記,待日後移植到其它作業系統時,再測試或修改;

作業系統複習

一 什麼是作業系統 在回答這個問題之前,我們先來了解一下什麼是計算機系統。計算機系統是按使用者的要求接收和儲存資訊 自動進行資料處理並輸出結果資訊的系統。計算機系統由硬體系統和軟體系統組成。軟硬體系統的組成部分就是計算機系統的資源,當不同的使用者使用計算機時都要占用系統資源並且有不同的控制需求。作業...

2019作業系統A

2014年秋季學期 作業系統 課程考試試卷 a卷 注意 1 本試卷共 3 頁2 考試時間 110分鐘 3 姓名 學號 網選班級 網選序號必須寫在指定地方。一 單項選擇題目 每小題 2分,共30分,請將答案填在小提前的括弧內 1.從使用者角度看,作業系統是 a.計算機資源的管理者b.計算機工作流程的組...

作業系統 筆記

第一章作業系統引論 什麼是作業系統?作業系統是所有軟體中最基礎 最核心的部分,是計算機使用者和計算機硬體之間的中介程式,它為使用者執行程式提供更方便 更有效的環境。從資源管理的角度看,作業系統對整個計算機系統內的所有硬體和軟體資源進行管理和排程,優化資源利用,協調系統內的各種活動,處理可能出現的種種...