第六章 運動的詩章:執行時資料結構
a.out 它是assembler output 的縮寫形式;
a.out 這個名字是unix 「沒什麼理由,但我們就是這麼做的」思維的一例;
超級塊(superblock unix 檔案系統中的基礎資料結構)就是用下面這個神奇數字唯一標識的
#define ps_magic 0x011954 這個數字式berkeley fast 檔案系統的實現者的生日;
在unix中,段標識乙個二進位制檔案相關的內容塊;
區域性變數並不進入a.out,它們在執行時建立;
int main()
以上小型測試程式,可以發現你的系統堆疊的大致位置;
c語言中所有函式在詞法層次中都是位於最頂層的;
指標失去了有效性(引用不存在的東西),被稱為「懸垂指標(dangling pointer)」;
唯一能用的auto的地方就是使你的宣告更加清楚整齊;
goto 語句不能跳出c語言當前的函式(這也是longjmp 取名的由來,它可以跳得很遠,甚至可以調到其他檔案的函式中);
#include#includejmp_buf buf; banana() int main() return 0; }
setjmp 和longjmp 在c++ 中變異為更為普通的異常處理機制「catch」和「throw」;
在unix中,當程序需要更多空間時,堆疊會自動生長。程式設計師可以想象堆疊是無限大的。這是unix勝過其他作業系統如ms-dos的許多優勢之一;
《C專家程式設計》筆記2
無論在什麼時候,如果遇見了這樣一條語句malloc strlen str 幾乎可以斷定它是錯誤的,malloc strlen str 1 才對 總結 進步是計算機軟體工程和程式語言設計藝術逐步發展的重要動因 includeint main int argc,char argv 以上 編譯都不會通過,...
《C專家程式設計》筆記3
const int grape int const grape int const grape 最後一種情況指標是唯讀的,上面兩種指標所指的物件是唯讀的 結構體可以用於段位,之前沒聽說過吧 includeint main struct bit field temp temp.a 1 printf d...
《C專家程式設計》筆記3
第三章 分析c語言的宣告 const int grape int const grape int const grape 最後一種情況指標是唯讀的,上面兩種指標所指的物件是唯讀的 結構體可以用於段位,之前沒聽說過吧 cpp include int main struct bit field temp...