檢視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站看哈工大的李治軍老師講的,但是一上來就開始從彙編 ...