嵌入式linux入門之c語言學習注意事項總結(一)

2021-07-03 12:31:07 字數 2063 閱讀 5640

宣告:本文內容為本人學習嵌入式linux所遇問題後,將自己所理解的注意事項作出總結,以便日後學習,如有錯誤,請大神能予以指出,小弟不勝感激!

環境:vmware-workstation-full-10.0.4-2249910 和 ubuntu 12.04

此文件為我自己學習嵌入式c時,所學到的一些東西,前面有一部分並非c知識,但對於在linux下程式設計,熟悉其基本操作還是很有必要的。

1、開啟終端 ctrl + alt + t

2、活動視窗切換 alt + tab

3、進入ubuntu後,分為使用者模式和root模式 

1)使用者模式登入,使用者目錄在/home目錄下;

2)root模式登入,root使用者的目錄在根目錄下;

4、cd 表示切換工作目錄,cd命令的預設路徑是當前使用者目錄;

1、使用者模式

2、root模式

5、& 後台執行  gedit main.c &  後台執行編輯程式,對於程式除錯編譯時,比較方便,不需要隨時關閉編輯器,就可以使用terminal;

6、man的使用

1)作用

linux的man手冊很強大,該手冊分成很多section,使用man時可以指定不同的section來瀏覽,很是強大。(小弟初學,一直不是很明白各個版本之間的區別)

2)使用方法

在shell中輸入 man+數字+命令/函式 即可以查到相關的命令和函式。若不加數字,那linux man命令預設從數字較小的手冊中尋找相關命令和函式。(初學的我個人覺得最主要是用於使用man來了解某個庫函式的標頭檔案,以及使用方法等,非常方便)

舉例:man 2 關鍵字

man 3 關鍵字

還有,如果想顯示1-9所有section,我們可以這樣做:

man  -a  查詢的關鍵字

每顯示完乙個section按q鍵進入下乙個section     如想直接跳出,按: ctrl + z

7、在計算機內部,所有的資料、影象等資訊全部需要轉換成0/1的資料進行儲存;

8、變數:就是描述一片記憶體空間,即在記憶體中申請特定型別的記憶體空間存放相應型別的值;

特徵:1)記憶體的組織方式 (唯一的編號,即位址,也叫指標)(0-2^32-1  根據實際情況確定大小) 

2)大小(每種型別所佔的大小)

3)解釋(型別)

9、定義變數,就要涉及到型別的問題:

基本資料型別大致可以分為三類:整數 和 實數 和 空型別

1)整數型別:short, int, long, long long,char  (unsigned, signed)

//不同的計算機的體系結構中所佔位元數有可能不同;

2)實數型別(浮點型別):float (32bit), double (64bit) 

//實數不區分un/sngned ,都是有符號數  ,不同的計算機的體系結構中所佔位元數固定;

3)void 

//空型別並非無型別,它本身也是一種資料結構,常用在資料型別的轉換和引數傳遞的過程中;

10、unsigned 和 signed   整數的有符號與無符號不能相同表示,在嵌入式開發中,經常會考慮可移植性問題,字元的有符號表示和無符號表示區別較大,一般採用,把儲存於int型別的變數的值限制在signed 和 unsigned  int的交際中,這樣可以獲得最大程度的可移植性,又不犧牲效率。(書上看到的)

11、sizeof  長度運算子

sizeof  是乙個使用頻率極高的操作符,若運算物件為變數,則是求變數占用記憶體空間的位元組數;若運算物件為資料型別,則求資料型別佔記憶體空間的位元組數;

sizeof與strlen的區別:

1)用sizeof來返回型別以及靜態分配的物件、結構或陣列所佔的空間,返回值跟物件、結構、陣列所儲存的內容沒有關係。獲得保證能容納實現所建立的最大物件的位元組大小;

sizeof返回定義arr陣列時,編譯器為其分配的陣列空間大小,不關心裡面存了多少資料。

2)strlen:返回字串的長度。該字串可能是自己定義的,也可能是記憶體中隨機的,該函式實際完成的功能是從代表該字串的第乙個位址開始遍歷,直到遇到結束符'\0'。返回的長度大小不包括'\0'。

strlen只關心儲存的資料內容,不關心空間的大小和型別。

嵌入式C語言學習(二)

c語音基礎 1.函式 形參與實參 函式呼叫 區域性變數和全域性變數 extern 動態儲存變數和靜態儲存變數 static 內部函式 定義加static 和外部函式 定義和使用時加extern 2.預編譯處理 2.1巨集定義 define 識別符號 字串 巨集名用大寫 巨集定義不是語句,不加分號 巨...

19 9 21 嵌入式C語言學習

準備再深入學習c語言為了更好的了解嵌入式程式設計 為後續的深入學習打下基礎,目前就自己感覺而言linux的學習不是走一條線,而是多線並進。c語言的學習的是必須掌握的,經常做題已經對裡面程式設計語法的熟悉 linux是作業系統的學習,了解其內部的執行原理,核心,以及一些命令的使用 要一直走在學習的路上...

嵌入式C語言 學習筆記

一 位運算 符號運算規則 與 兩個位都為1時,結果才為1 從真假方面看,只有當兩個位都為真時,結果才為真 或 兩個位都為0時,結果才為0 從真假方面看,如果兩個運算物件中相應的乙個位為真或者兩個位都為真,那麼結果為真 異或 兩個位相同為0,相異為1 從真假方面看,如果兩個運算物件中相應的乙個位為真且...