第三次課程

2021-10-03 23:00:39 字數 1620 閱讀 9761

作業

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...