區分作業系統的一些巨集

2021-08-21 21:53:20 字數 1725 閱讀 3374

編碼的時候經常要用到條件編譯,每次都到網上去查比較浪費時間,今天總結一下以備後用

編譯器

#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實現 從使用...