久久婷婷香蕉热狠狠综合,精品无码国产自产拍在线观看蜜,寡妇房东在做爰3,中文字幕日本人妻久久久免费,国产成人精品三上悠亚久久

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 學習筆記 > 變量存儲類型(xing) 動(dong)態(tai)內(nei)存分配(pei)詳解

變量存儲類型 動(dong)態內存分(fen)配(pei)詳(xiang)解 時間:2018-07-26      來(lai)源:未(wei)知

【一】、變量的存儲類型

1. 變量的定義

變量是對(dui)內存空間的抽(chou)象

2. 變量的生命(ming)周(zhou)期

變(bian)量在內存(cun)中的存(cun)儲時間(jian)(jian)。既變(bian)量從申請(qing)內存(cun)到釋放內存(cun)的一段時間(jian)(jian)。

3. 變量(liang)的(de)作(zuo)用域

變量(liang)的作用范圍,既哪部分的程序可以(yi)使用該變量(liang)。

4. 鏈接點

外部鏈接

可以在一個多文(wen)件(jian)程序(xu)中(zhong)的(de)任(ren)何(he)地方(fang)使用(auto 修飾的(de)全局變量(liang))

內部鏈接

在一個文件(jian)的(de)任何地方使用(yong)(static 修飾的(de)變(bian)量只可以(yi)在本文件(jian)內使用(yong))

空鏈接

 代(dai)碼塊作用(yong)域或者(zhe)函(han)數原(yuan)型(xing)作用(yong)域(只能(neng)在函(han)數中使用(yong))

5. auto、static、extern、register

static:

1. 改變(bian)變(bian)量的(de)作用域

2. 延長(chang)變(bian)量的生命周期

3. 只初始化一次

register:

register修(xiu)飾的(de)變量,希望分(fen)(fen)配一(yi)個(ge)寄存器來存放(fang)變量的(de)值(zhi),但(dan)是不(bu)(bu)一(yi)定能分(fen)(fen)配到。如果分(fen)(fen)配不(bu)(bu)到就(jiu)放(fang)在(zai)內存里。

extern:調(diao)用外部(bu)文件的

4G虛擬內存空間劃分:

3G-4G:內核空(kong)間

0G-3G:用(yong)戶空間

棧(zhan)區(qu)(局(ju)部變量)

堆區(用戶手動分配的空間)

.data段(初始化的全局變(bian)量和初始化的靜態局部變(bian)量)

數據(ju)區 --->>> .bss段(未(wei)(wei)初(chu)始(shi)化的全局(ju)變量和未(wei)(wei)初(chu)始(shi)化的靜態局(ju)部變量)

常量區(只讀)

代(dai)碼段(只讀

【二】、動態內存分配

/****************************

*功能(neng):在堆中分配(pei)空(kong)間

*參數:申(shen)請的(de)堆空間的(de)大小(xiao),單(dan)位是位

*返回值:

* 成(cheng)功:返(fan)回一個可(ke)用(yong)的地址(zhi)

* 失(shi)敗:返回(hui)NULL

****************************/

void *malloc(size_t size);

#include

/*************************************

*功能:設置指針指向的(de)內存空間

*參數:

* s:要設(she)置的內存空間的首地址

* c:要寫入內存中(zhong)的(de)值

* n: 寫入多(duo)少個(ge)字節

*************************************/

void *memset(void *s, int c, size_t n);

/*************************************

*功能(neng):釋(shi)放(fang)堆空(kong)間(jian)

*參(can)數:指向要釋放的堆空間(jian)的首地址

*************************************/

void free(void *ptr);

注意(yi):釋放完(wan)堆(dui)空間以后,將指(zhi)針賦值為NULL。

malloc函數的一般(ban)傳(chuan)參形式:

int *p = (int *)malloc(10*sizeof(int));

【三】、make工程管理工具

1. 簡介

工程管理器,顧(gu)名思義,是(shi)指(zhi)管理較多的(de)文件

特點(優勢):

構(gou)根(gen)據(ju)文件(jian)時間(jian)戳自動發現更新過的(de)文件(jian)而(er)減少編譯的(de)工作(zuo)量

命名方式:

GNUmakefile、 makefile、 Makefile

Makefile的三要素:

目標

依賴

規則

Makefile的格式:

目標:依賴

規則

2. 自定義變量的四種(zhong)賦值方式

1.遞歸展開方式VAR=var

特點:向(xiang)后引用

2.簡單方式 VAR:=var

3.?=定(ding)義變量

VAR ?= var

如果VAR變(bian)量在之前定義(yi)過,就使用之前的(de)值,否則使用現在定義(yi)的(de)值

4.+=定(ding)義變量

在原(yuan)來變量(liang)的基(ji)礎上(shang)增加值(zhi)

VAR := add.o

VAR += sub.o

3. 預(yu)定義變量

4. 自動(dong)變量(liang)

依賴文件:

$+ 所有的(de)(de)依(yi)賴文(wen)(wen)件(jian),以空格分開,并以出現(xian)的(de)(de)先(xian)后為(wei)序,可能(neng)包含重(zhong)復的(de)(de)依(yi)賴文(wen)(wen)件(jian)

$^ 所(suo)有不重復的目標依賴文件(jian),以(yi)空格(ge)分開(kai)

$< 第一個依(yi)賴(lai)文件的名稱

$? 所有時間戳比(bi)目標文件晚的依賴文件,并以(yi)空(kong)格分開

目標文件:

$@ 目(mu)標文件的完整名稱

$* 不包含擴(kuo)展名(ming)的(de)目標文件名(ming)稱(cheng)

5.

-C dir讀入(ru)指定目錄下的Makefile

-f file讀(du)入(ru)當(dang)前目錄下(xia)的file文件(jian)作為Makefile

-i 忽略所有的命令執行錯誤

上一篇:c語言中輸入輸出函數案例解析

下一篇:Linux內核驅動的platform機制

熱(re)點文(wen)章推(tui)薦
華清(qing)學員就業榜單(dan)
高薪學員經驗(yan)分(fen)享
熱點(dian)新聞推薦
前(qian)臺專線:010-82525158 企(qi)業培訓洽談專線:010-82525379 院校合作(zuo)洽談(tan)專(zhuan)線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權所有 ,,京公海網安備11010802025203號

回到頂部