原创 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     求最大公約數,就是求較小的一個數的約數同時也能被較大的數整除,把他求到最大就可以了。求最小公倍數,就是求