国产成人精品三级麻豆,色综合天天综合高清网,亚洲精品夜夜夜,国产成人综合在线女婷五月99播放,色婷婷色综合激情国产日韩

當(dāng)前位置:首頁(yè) > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 學(xué)習(xí)筆記 > 變量存儲(chǔ)類型 動(dòng)態(tài)內(nèi)存分配詳解

變量存儲(chǔ)類型 動(dòng)態(tài)內(nèi)存分配詳解 時(shí)間:2018-07-26      來源:未知

【一】、變量的存儲(chǔ)類型

1. 變量的定義

變量是對(duì)內(nèi)存空間的抽象

2. 變量的生命周期

變量在內(nèi)存中的存儲(chǔ)時(shí)間。既變量從申請(qǐng)內(nèi)存到釋放內(nèi)存的一段時(shí)間。

3. 變量的作用域

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

4. 鏈接點(diǎn)

外部鏈接

可以在一個(gè)多文件程序中的任何地方使用(auto 修飾的全局變量)

內(nèi)部鏈接

在一個(gè)文件的任何地方使用(static 修飾的變量只可以在本文件內(nèi)使用)

空鏈接

代碼塊作用域或者函數(shù)原型作用域(只能在函數(shù)中使用)

5. auto、static、extern、register

static:

1. 改變變量的作用域

2. 延長(zhǎng)變量的生命周期

3. 只初始化一次

register:

register修飾的變量,希望分配一個(gè)寄存器來存放變量的值,但是不一定能分配到。如果分配不到就放在內(nèi)存里。

extern:調(diào)用外部文件的

4G虛擬內(nèi)存空間劃分:

3G-4G:內(nèi)核空間

0G-3G:用戶空間

棧區(qū)(局部變量)

堆區(qū)(用戶手動(dòng)分配的空間)

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

數(shù)據(jù)區(qū) --->>> .bss段(未初始化的全局變量和未初始化的靜態(tài)局部變量)

常量區(qū)(只讀)

代碼段(只讀

【二】、動(dòng)態(tài)內(nèi)存分配

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

*功能:在堆中分配空間

*參數(shù):申請(qǐng)的堆空間的大小,單位是位

*返回值:

* 成功:返回一個(gè)可用的地址

* 失。悍祷豊ULL

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

void *malloc(size_t size);

#include

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

*功能:設(shè)置指針指向的內(nèi)存空間

*參數(shù):

* s:要設(shè)置的內(nèi)存空間的首地址

* c:要寫入內(nèi)存中的值

* n: 寫入多少個(gè)字節(jié)

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

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

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

*功能:釋放堆空間

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

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

void free(void *ptr);

注意:釋放完堆空間以后,將指針賦值為NULL。

malloc函數(shù)的一般傳參形式:

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

【三】、make工程管理工具

1. 簡(jiǎn)介

工程管理器,顧名思義,是指管理較多的文件

特點(diǎn)(優(yōu)勢(shì)):

構(gòu)根據(jù)文件時(shí)間戳自動(dòng)發(fā)現(xiàn)更新過的文件而減少編譯的工作量

命名方式:

GNUmakefile、 makefile、 Makefile

Makefile的三要素:

目標(biāo)

依賴

規(guī)則

Makefile的格式:

目標(biāo):依賴

規(guī)則

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

1.遞歸展開方式VAR=var

特點(diǎn):向后引用

2.簡(jiǎn)單方式 VAR:=var

3.?=定義變量

VAR ?= var

如果VAR變量在之前定義過,就使用之前的值,否則使用現(xiàn)在定義的值

4.+=定義變量

在原來變量的基礎(chǔ)上增加值

VAR := add.o

VAR += sub.o

3. 預(yù)定義變量

4. 自動(dòng)變量

依賴文件:

$+ 所有的依賴文件,以空格分開,并以出現(xiàn)的先后為序,可能包含重復(fù)的依賴文件

$^ 所有不重復(fù)的目標(biāo)依賴文件,以空格分開

$< 第一個(gè)依賴文件的名稱

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

目標(biāo)文件:

$@ 目標(biāo)文件的完整名稱

$* 不包含擴(kuò)展名的目標(biāo)文件名稱

5.

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

-f file讀入當(dāng)前目錄下的file文件作為Makefile

-i 忽略所有的命令執(zhí)行錯(cuò)誤

上一篇:c語(yǔ)言中輸入輸出函數(shù)案例解析

下一篇:Linux內(nèi)核驅(qū)動(dòng)的platform機(jī)制

熱點(diǎn)文章推薦
華清學(xué)員就業(yè)榜單
高薪學(xué)員經(jīng)驗(yàn)分享
熱點(diǎn)新聞推薦
前臺(tái)專線:010-82525158 企業(yè)培訓(xùn)洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠(yuǎn)見科技集團(tuán)有限公司 版權(quán)所有 ,京ICP備16055225號(hào)-5京公海網(wǎng)安備11010802025203號(hào)

回到頂部