作業
gcc -static這個static作用??
1、隱藏
當同時編譯多個檔案時,所有未加static字首的全域性變數和函式都具有全域性可見性
2、保持變數內容的持久:儲存在靜態資料區的變數會在程式剛開始執行時就完成初始化,也是唯一的一次初始化, (static修飾的區域性變數只有在整個程式結束的時候才會自動釋放。若下次呼叫該區域性變數所在的函式時,不需要對它重新宣告,且會保留上一次呼叫存入的值。)
3、 static變數不初始化時,預設初始化為0
static的第三個作用是預設初始化為0。其實全域性變數也具備這一屬性,因為全域性變數也儲存在靜態資料區。在靜態資料區,記憶體中所有的位元組預設值都是0x00,某些時候這一特點可以減少程式設計師的工作量。
static的三條作用做一句話總結。首先static的最主要功能是隱藏,其次因為static變數存放在靜態儲存區,所以它具備永續性和預設值0。
總結嵌入式linux開發工具及課程目標
vim(文字編輯器)學會使用和如何配置vim
gcc(編譯器)學會製作動態庫和靜態庫及使用區別
gdp(偵錯程式)設定斷電、單步執行、除錯記憶體錯誤
make(工程管理器)編寫makefile檔案
linux文字編輯器:vim—功能最強大文字編輯器—擺脫滑鼠
vi—vim—**im:命令列模式nyy\p\ndd\u、插入模式i、a、底行模式:+shift
(進入i或者a 退出esc 儲存:wq 複製 貼上 刪除 恢復yy p dd u)
如何配置vim?/etc/vim/vimrc
ide(整合開發環境)—vscode
靜態庫和動態庫的製作
1、什麼是庫檔案?儲存函式和變數(倉庫)
特點:儲存的函式與變數,只能使用但不能看到其實現
2、linux庫檔案:
靜態庫.a:在編譯階段載入;(將庫檔案的**載入到原始檔)
動態庫.so:在執行時載入;
生成的可執行檔案存在區別(優缺點)
1.使用靜態庫生成的可執行檔案》動態庫生成的可執行檔案(程式執行占用的記憶體較多)
2.使用靜態庫生成的可執行檔案難以公升級;使用動態庫生成的可執行檔案易於公升級;
3.使用靜態庫生成的可執行檔案執行速度快;使用動態庫生成的可執行檔案執行速度慢
4.使用靜態庫可執行檔案裡的**容易部署,動態庫難以部署;
3、linux庫檔案存放路徑:(自動搜尋路徑)
\lib:存放的系統執行所需要的庫
\usr\lib:存放的是程式執行所需要的庫
如何製作靜態庫?
1、將需要儲存的函式所在的檔案編譯生成目標檔案gcc -c add.c —->add.o
2.靜態庫的製作工具:ar
ar rcs(不存在就建立,存在就更新)庫名 目標檔名
ar rcs libadd.a add.o
(cp libadd.a /lib or /usr/lib
3.使用
gcc 原始檔 -l庫名 -l庫存放的路徑
gcc main.c -ladd -l. -o add
如何製作動態庫?
gcc -shared -fpic 原始檔 -o libcal.so
gcc -shared -fpic add.c sub.c -o libcal.so
OO課程第三次總結
規格化設計的發展歷史和電腦程式通用性增強有關。早期的程式功能單一,編制後基本不進行維護和修改,因此設計的規範未成為程式編寫的阻礙。但隨著計算機系統的飛速發展,軟體的功能大大提公升,由此帶來的就是對程式可擴充套件性,可維護性的需求不斷增加。而規格化設計是解決問題的有效方法,因此程式編寫的各種規範逐漸推...
第三次課程實驗報告
冷血的獵人1 用w s a d控制獵人上下左右,並能斜向行走。2 擊敗敵人,敵人一波比一波多 3 不同的敵人隨機出現,進攻性動物會向人的方向移動,其它敵人隨機給乙個座標,然後斜向移動到隨機座標後再隨機乙個座標,直到死亡。4 有邊界,不能出界 5 野怪已經有傷害了,人物還只能發射子彈,但還沒有傷害。1...
第三次作業
2 12有600 mb 兆位元組 的資料,需要從南京傳送到北京。一種方法是將資料寫到磁碟上,然後託人乘火車這 些磁碟捎去。另一種方法是用計算機通過長途 線路 設資訊傳送的速率為2.4kb s 傳送此資料。試比較這兩種方法的優劣。若資訊傳送速率為33.6kb s,其結果又如何?解 當傳送速率為2.4k...