編碼的時候經常要用到條件編譯,每次都到網上去查比較浪費時間,今天總結一下以備後用
編譯器
#ifdef __gnuc__
#if __gnuc__ >= 3 // gcc3.0以上
#ifdef _msc_ver(非vc編譯器很多地方也有定義)
#if _msc_ver >=1000 // vc++4.0以上
#if _msc_ver >=1100 // vc++5.0以上
#if _msc_ver >=1200 // vc++6.0以上
#if _msc_ver >=1300 // vc2003以上
#if _msc_ver >=1400 // vc2005以上
#ifdef __borlandc__
unix
#ifdef __unix
or#ifdef __unix__
#ifdef __linux
or#ifdef __linux__
#ifdef __freebsd__
#ifdef __netbsd__
windows
#ifdef _win32(或者win32)
#ifdef _win64
#ifdef _windows
#ifdef _console
※ pc機windows(95/98/me/nt/2000/xp/vista)和windows ce都定義了
#if (winver >= 0x030a) // windows 3.1以上
#if (winver >= 0x0400) // windows 95/nt 4.0以上
#if (winver >= 0x0410) // windows 98以上
#if (winver >= 0x0500) // windows me/2000以上
#if (winver >= 0x0501) // windows xp以上
#if (winver >= 0x0600) // windows vista以上
windows 95/98/me的ver … _win32_windows
#ifdef _win32_windows
#if (_win32_windows >= 0x0400) // windows 95以上
#if (_win32_windows >= 0x0410) // windows 98以上
#if (_win32_windows >= 0x0500) // windows me以上
#if (_win32_winnt >= 0x0500) // windows 2000以上
#if (_win32_winnt >= 0x0501) // windows xp以上
#if (_win32_winnt >= 0x0600) // windows vista以上
#ifdef _win32_wce
windows ce … winceosver
windows ce
wce_if
int ernet explorer的ver … _win32_ie
cygwin
cygwin
#ifdef __cygwin__
32bit版cygwin(現在好像還沒有64bit版)
#ifdef __cygwin32__
mingw(-mno-cygwin指定)
#ifdef __mingw32__
一些作業系統和網路
日誌檔案系統 只有當日誌項已經寫入磁碟,不同的操作才可以進行,所有的操作完成後,擦除日誌項。如果系統這時崩潰,系統恢復後,檔案系統可以通過檢查日誌檔案來檢視是不是有未完成的操作。檢查磁軌是否有壞道等,可以用兩張表分別記錄是否以用和空閒,然後對比,結果一樣則正常,否則是壞道。psw 程式狀態暫存器。t...
經營作業系統的一些思路
最近國內作業系統行業比較活躍,10月17日到10月18日是第二屆開源作業系統技術年會。各路好手你方唱罷我登場,好不熱鬧。我有幸了解了一下,的確是一屆盛會。個人關心的並不是作業系統本身的技術,自己雖然是個做技術的。我始終放在作業系統的發展上,尤其是商業發展。放眼國內,作業系統都是國外的在搶灘登陸。國內...
作業系統核心的一些事
一.總的來講,作業系統只要能實現以下兩點就可以了 1.時間的假象和空間的假象 時間假象的作用是實現了多程序 多執行緒 空間假象的作用是實現了虛擬記憶體。無疑,這兩點是現代作業系統的基石。2.和硬體介面以及和使用者態的介面 從硬體那裡接收資訊,這個用中斷實現,和硬體互相讀寫,這個用基本io實現 從使用...