專案名稱
【蘇嵌實訓-嵌入式 linux c 第 3 天】
今日進度以及任務嵌入式c實戰詳解1-開發流程、編碼規範
本日任務完成情況按時完成了老師課後布置的程式設計題
本日開發**現的問題彙總無
本日未解決問題1、老師課上說64位作業系統指標長度應該是8個位元組,32位作業系統指標長度為4個位元組,但是我電腦是64位,編譯出來的指標長度顯示4個位元組,這個問題有待查詢。
2、對於上課的i++,++i,*(ptr++), *(++ptr)掌握還不夠熟練。
本日開發收穫學習了c語言概述、資料型別、輸入輸出、運算子以及基本控制語句,詳細見筆記部分
其他無
一、概述
1、c語言之父?
丹尼斯·里奇, 1978 k&rc --unix是由c開發的
2、c語言的特點(優勢)?
直接訪問硬體、執行效率、移植性
因為c語言有指標型別
《嵌入式開發為什麼選擇c語言?>
所有作業系統的核心都採用了c語言;
不會,python是解釋性語言,不可能替代c語言
3、c語言標準?
k&rc 、c89、c99、c11
4、如何學習c語言?
寫**並不是大量的看書、專案
二、資料型別
1、所有的資料型別的定義、初始化;
printf(「a = %p\n」,a);//a+1增加乙個陣列元素長度
printf("&a = %p\n",&a);//&a+1增加乙個陣列長度
右左法則:
1)確定a是乙個變數,就要確定該變數儲存什麼型別的資料,儲存什麼型別的資料,它就是什麼型別的變數;
2)確定a是乙個指標變數,就要確定該指標變數儲存什麼型別的位址,儲存什麼型別的位址,它就是什麼型別的指標變數;
3)確定a是乙個陣列,就要確定陣列裡的元素是什麼型別的,元素是什麼型別,它就是什麼陣列;
4)確定a是乙個函式,就要確定函式的形參和返回值;
int a; //乙個整型數
int *a; //整型指標變數
int **a; //整型指標的指標變數
int a[10]; //整型陣列
int *a[10]; //整型指標陣列
int (*a)[10]; //陣列指標變數,指向的是整型陣列
int (*a)(int); //函式指標變數,指向的是形參為int,返回值為int
int (*a[10])(int); //函式指標陣列,
2、各種資料型別的位元組長度(所佔記憶體空間的大小)及取值範圍;
基本型別位元組長度:
int 4
char 1
short 2
long 4
float 4
double 8
指標變數的位元組長度
指標變數的位元組長度是固定的!!
《因為指標儲存的是位址,位址在作業系統中是固定長度,長度是由作業系統位數決定的,32位系統,指標是4個位元組;64位系統,指標是8個位元組》
sizeof vs strlen:
1)sizeof是運算子,不是函式;作用:計算資料型別或者變數的所佔記憶體空間的大小。
2)strlen是字串庫函式;作用:統計當前字串的字元個數,不包含\0。
3)sizeof在計算字串的大小時包含\0
3、signed\unsigned
三、輸入輸出
printf:
《格式化控制符》//行緩衝,滿一行才輸出
scanf:
用scanf輸入字元的時候需要先用getchar()將緩衝區裡面的回車取走
getchar
putchar
gets
四、運算子、基本控制語句
1、i++;++i;
邏輯運算子&&||!
2、位運算
3、whilefor//已知迴圈次數用for,不知迴圈次數用while
4、ifswitchcase
5、breakcontinue
6、goto:異常處理
//函式傳參從右邊開始傳參
蘇嵌實訓 嵌入式 linux C 第 3天
專案名稱 蘇嵌實訓 嵌入式 linux c 第 3天 今日進度以及任務 學習linux下常用的開發工具 任務完成情況 已完成本日開發 現的問題彙總 對gdb運用不熟悉 本日未解決問題 如何使程式在編譯的過程中不進行優化 本日開發收穫 linux中靜態和動態庫,gdb,makefile 1 編譯器 優...
蘇嵌實訓 嵌入式 LinuxC 第 3 天
專案名稱 蘇嵌實訓 嵌入式 linuxc 第 3 天 今日進度以及任務 c語言的基礎 c語言的特點c語言標準資料型別運算子基本控制語句 本日任務完成情況 詳細說明本日任務是否按計畫完成,開發的 量 今天自己沒寫很多 自己感覺還可以 感覺自己c還得加強 多看點書 本日未解決問題 感覺自己c還得加強 多...
蘇嵌實訓 嵌入式 linux C 第 1 天
專案名稱 蘇嵌實訓 嵌入式 linux c 第 1 天 今日進度以及任務嵌入式開發概述及嵌入式linux c專案演示 嵌入式環境安裝與使用 本日任務完成情況已完成課上布置的7個小題作業,並把課上的筆記做了相應整理。本日開發 現的問題彙總1 使用目錄指令的時候用 cd.不能返回上一級目錄並且報錯,查詢...