原创 linux四個維度
linux系統是軟件開發歷史上的一個傳奇。來自全球的個人、公司、團體爲了完成開放和自由的訴求,在一種鬆散但是卻有效的方式下,成功地創建一個偉大的生態系統。無論從軟件的規模和穩定性上面,linux都是首屈一指的。當然這裏說的linux更
原创 Linux系統C語言學習總結
Linux系統C語言 引言 儘管 C 語言問世已近 30 年,但它的魅力仍未減退。C 語言繼續吸引着衆多的開發者,他們爲了編寫、移植或維護應用程序而必須學習新技能。 本文是爲了滿足對C語言初學者或想提高自身C語言修爲的開發人員
原创 計算機函數調用
01 #include <stdio.h> 02 long test(int a,int b) 03 { 04 a = a + 1;
原创 函數壓棧
在編譯器編譯文件的時候,軟件會根據程序本身的要求對函數作不同的壓棧處理。有的壓棧是按照從左到右進行壓棧,有的壓棧是按照從右到左進行壓棧,有的不壓棧、直接用寄存器代替,有的是需要被調用函數自身自己平衡堆棧。下面,我們就可以一個一個自己看
原创 編譯器如何工作
編譯器一直是我比較喜歡的話題。編譯器是個比較神奇的工具,它可以把原來毫無意義的字符數據轉變成一行一行可以執行的代碼。作爲每一個科班出身的同學來說,編譯原理都是專業學習中必須經歷的一個部分。只是在後來的工作中,真正從事編譯器開發的同學少之
原创 詳解C中volatile關鍵字
volatile提醒編譯器它後面所定義的變量隨時都有可能改變,因此編譯後的程序每次需要存儲或讀取這個變量的時候,都會直接從變量地址中讀取數據。如果沒有volatile關鍵字,則編譯器可能優化讀取和存儲,可能暫時使用寄存器中的值,如果這
原创 程序段及const
一.C語言程序的存儲區域 1.由C語言代碼(文本文件)形成可執行程序(二進制文件),需要經過編譯-彙編-連接三個階段。編譯過程把C語言文本文件生成彙編程序,彙編過程把彙編程序形成二進制機器代碼,連接過程則將各個源文件生成的二進制機器代碼文
原创 中斷異常
Linux內核學習筆記:中斷與異常 [日期:2012-03-31] 來源:Linux社區 作者:yaozhenguo2006 中斷分爲同步中斷與異步中斷。同步中斷也叫異常是CPU執行特定的指令產生的事件,他打斷CPU正常執行的指令
原创 內存堆棧(5.11)
C語言中堆和棧的區別 [日期:2012-04-05] 來源:Linux社區 作者:tigerjb 一.前言: C語言程序經過編譯連接後形成編譯、連接後形成的二進制映像文件由棧,堆,數據段(由三部分部分組成:只讀數據段,已經初始化讀
原创 函數與內存堆棧
目標文件和可執行文件的格式? 不同的系統的可執行文件有不同的格式。在SVr4實現中都採用了ELF(Extensible and Linker Format,可執行文件夾和鏈接格式)的格式,在其他系統中,可執行文件的格式是COFF
原创 linux庫文件
Linux 的庫文件 [日期:2012-04-10] 來源:Linux社區 作者:yangzhongxuan 1.什麼是庫 在windows平臺和linux平臺下都存在着大量的庫。 本質上來說庫是一種可執行代碼的二進制形式,可
原创 深入剖析C/C++函數的參數傳遞機制
深入剖析C/C++函數的參數傳遞機制 (轉-有修正)作者:leeyeafu(明經CAD社區 編程申請版塊 版主) 首先,這篇文章針對近期網友在ARX版塊的提問,很多都是在調用ARX函數或者設計自定義函數時出現的困惑,爲方便大家
原创 進制轉換
用C語言代碼實現n進制數轉換爲十進制數 [日期:2012-04-06] 來源:Linux社區 作者:junjieguo 用C語言代碼實現n進制數轉換爲十進制數 爲了實現進制之間的相互轉化,編程實現輸入任意一個數並輸入該數的進
原创 結構體對齊
: 按其成員中最大的自身值對齊,是成員最大自身值的整數倍 注:各變量自身值:int 4 long4 floart4 double4 Char 1 如果有#parma pack(n) 結構體自身值要爲n的整數倍 成員對齊:按其成員中
原创 最大公約最小公倍數
用C語言求兩個數的最大公約數和最小公倍數 [日期:2012-04-06] 來源:Linux社區 作者:junjieguo 求最大公約數,就是求較小的一個數的約數同時也能被較大的數整除,把他求到最大就可以了。求最小公倍數,就是求