作業系統標識巨集

2021-05-27 20:34:59 字數 1806 閱讀 1682

檢視gcc所定義的巨集的命令:cpp -dm /dev/null

命令一: cpp -dm /dev/null

命令二: gcc -dm -e - < /dev/null

1:os macro:

windows: _win32、win32;

unix/linux: unix、__unix、__unix__;

sunos/solaris: __svr4、__svr4__、sun、__sun、__sun__、sparc、__sparc、__sparc__;

hpux: __hppa、__hppa__、__hpux、__hpux__、_hpux_source;

aix: _aix、_aix32、_aix41、_aix43、_aix51、_aix52;

linux: linux、__linux、__linux__、__gnu_linux__;

cpu: __x86_64、__x86_64__(intel); __amd64、__amd64__(amd); sparc、__sparc、__sparc__(sun-sparc);

2:compiler macro:

__stdc__: ansi c標誌,值為1,說明相容ansi c標準;

__gnuc__: 它是gcc編譯器編譯**時預定義的乙個巨集;需要針對gcc編寫**時,可以使用這個巨集進行條件編譯;__gnuc__的值表示gcc的版本號,需要針對特定版本的gcc編寫**時,也可以使用這個巨集進行條件編譯;__gnuc__的型別是int;

__gnuc_minor__: gcc的次版本號;

__gnuc_patchlevel__: gcc的修訂號; 比如:gcc3.4.6版本,則__gnuc__=3;__gnuc_minor__=4;__gnuc_patchlevel__=6;

__glibc__: glib的主版本號;

__glibc_minor__: glib的次版本號;

3:常量巨集:

__pretty_function__: 記錄當前函式的函式頭資訊;

__function__: 僅記錄當前函式名;

__va_args__: 儲存了可變引數列表"...";

4.c/c++原副檔名:

.c:用c語言編寫的源**檔案;

.cpp/.cxx:用c++語言編寫的源**檔案;

.h/.hpp/.hxx:用c/c++語言編寫的標頭檔案;

5.main函式的四種寫法:

int main(void)

int main(int argc)

int main(int argc, char** argv)

int main(int argc, char** argv, char** env)

6.vc++的版本號巨集:

visual studio 5.0  --> vc++5.0 _msc_ver = 1100

visual studio 6.0  --> vc++6.0 _msc_ver = 1200

visual studio 2002 --> vc++7.0 _msc_ver = 1300

visual studio 2003 --> vc++7.1 _msc_ver = 1310

visual studio 2005 --> vc++8.0 _msc_ver = 1400

visual studio 2008 --> vc++9.0 _msc_ver = 1500

作業系統 作業系統介面

介面表現為函式呼叫,由作業系統提供,連線作業系統和應用軟體。出於安全性考慮,應用程式不能直接在記憶體中任意訪問 將核心程式和使用者程式隔離 通過比較訪問資料段cpl和rpl的特權級和當前段dpl的特權級之間的關係 應用程式呼叫庫函式printf printf呼叫庫中的write函式 write將函式...

作業系統(作業系統引論)

方便性 方便使用者進行操作計算機 有效性提高系統資源的利用率 提高系統的吞吐量,加速程式的執行 可擴充性 方便地增添新的模組和功能,以及對原有的功能模組進行修改 開放性能夠遵循世界標準規範 os作為使用者和計算機硬體系統之間的介面 使用者能夠通過作業系統來使用計算機系統 os作為計算機資源的管理者 ...

作業系統 作業系統 一 作業系統概述

好好學習,天天向上本文已收錄至我的github倉庫daydayup 歡迎star 之前一直沒有系統地學過作業系統,感覺自己在平時的學習過程中對於某些概念理解得一塌糊塗,比如中斷 記憶體 程序和執行緒等。所以打算系統的學習一下作業系統。一開始我是在b站看哈工大的李治軍老師講的,但是一上來就開始從彙編 ...