www.久久久久|狼友网站av天堂|精品国产无码a片|一级av色欲av|91在线播放视频|亚洲无码主播在线|国产精品草久在线|明星AV网站在线|污污内射久久一区|婷婷综合视频网站

當(dāng)前位置:首頁(yè) > 公眾號(hào)精選 > 華清遠(yuǎn)見(jiàn)武漢中心
[導(dǎo)讀]1.C語(yǔ)言中,修飾符volatile含義是什么?其應(yīng)用場(chǎng)合有哪些?volatile提醒編譯器它后面所定義的變量隨時(shí)都有可能改變,因此編譯后的程序每次需要存儲(chǔ)或讀取這個(gè)變量的時(shí)候,都會(huì)直接從變量地址中讀取數(shù)據(jù)。如果沒(méi)有volatile關(guān)鍵字,則編譯器可能優(yōu)化讀取和存儲(chǔ),可能暫時(shí)使用...

1. C語(yǔ)言中,修飾符volatile含義是什么?其應(yīng)用場(chǎng)合有哪些?

volatile提醒編譯器它后面所定義的變量隨時(shí)都有可能改變,因此編譯后的程序每次需要存儲(chǔ)或讀取這個(gè)變量的時(shí)候,都會(huì)直接從變量地址中讀取數(shù)據(jù)。如果沒(méi)有volatile關(guān)鍵字,則編譯器可能優(yōu)化讀取和存儲(chǔ),可能暫時(shí)使用寄存器中的值,如果這個(gè)變量由別的程序更新了的話,將出現(xiàn)不一致的現(xiàn)象。

2. 請(qǐng)問(wèn)TCP/IP協(xié)議分為哪幾層?FTP協(xié)議在哪一層?

ISO/OSI的參考模型共有7層,由低層至高層分別為:物理層、數(shù)據(jù)鏈路層、網(wǎng)絡(luò)層、傳輸層、會(huì)話層、表示層、應(yīng)用層

物理層:

在物理媒體上傳輸原始的數(shù)據(jù)比特流。?
數(shù)據(jù)鏈路層:

將數(shù)據(jù)分成一個(gè)個(gè)數(shù)據(jù)幀,以數(shù)據(jù)幀為單位傳輸。有應(yīng)有答,遇錯(cuò)重發(fā)。?
網(wǎng)絡(luò)層:

將數(shù)據(jù)分成一定長(zhǎng)度的分組,將分組穿過(guò)通信子網(wǎng)。?
傳輸層:

提供不具體網(wǎng)絡(luò)的高效、經(jīng)濟(jì)、透明的端到端數(shù)據(jù)傳輸服務(wù)。?
會(huì)話層:

進(jìn)程間的對(duì)話也稱為會(huì)話,會(huì)話層管理不同主機(jī)上各進(jìn)程間的對(duì)話。?
表示層:

為應(yīng)用層進(jìn)程提供格式化的表示和轉(zhuǎn)換數(shù)據(jù)服務(wù)。?
應(yīng)用層:

提供應(yīng)用程序訪問(wèn)OSI環(huán)境的手段。
應(yīng)用層:

TELNET、FTP、TFTP、SMTP、SNMP、HTTP、BOOTP、DHCP、DNS?
表示層:

文本:ASCII,EBCDIC
圖形:TIFF,JPEG,GIF,PICT
聲音:MIDI,MPEG,QUICKTIME
會(huì)話層:NFS、SQL、RPC 、X-WINDOWS、ASP(APPTALK會(huì)話協(xié)議)、SCP
傳輸層:TCP、UDP、SPX
網(wǎng)絡(luò)層:IP、IPX、ICMP、RIP、OSPF(Open Shortest Path First開(kāi)放式最短路徑優(yōu)先)?
數(shù)據(jù)鏈路層:SDLC、HDLC、PPP、STP(Spanning Tree Protocol)、幀中繼?
物理層:EIA/TIA RS-232、EIA/TIA RS-449、V.35、RJ-45

3. 在網(wǎng)絡(luò)應(yīng)用中,函數(shù)htons,htonl,ntohs,ntohl的作用是什么?

uint32_t?htonl(uint32_t?hostlong);//32位的主機(jī)字節(jié)序轉(zhuǎn)換到網(wǎng)絡(luò)字節(jié)序?
uint16_t?htons(uint16_t?hostshort);//16位的主機(jī)字節(jié)序轉(zhuǎn)換到網(wǎng)絡(luò)字節(jié)序?
uint32_t?ntohl(uint32_t?netlong);//32位的網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換到主機(jī)字節(jié)序?
uint16_t?ntohs(uint16_t?netshort);//16位的網(wǎng)絡(luò)字節(jié)序轉(zhuǎn)換到主機(jī)字節(jié)序?
(皆為大小端的改變)

4. C語(yǔ)言中static函數(shù)與普通函數(shù)的區(qū)別是什么?

靜態(tài)函數(shù)

在函數(shù)的返回類型前加上關(guān)鍵字static,函數(shù)就被定義成為靜態(tài)函數(shù)。函數(shù)的定義和聲明默認(rèn)情況下是extern的,但靜態(tài)函數(shù)只是在聲明他的文件當(dāng)中可見(jiàn),不能被其他文件所用。

定義靜態(tài)函數(shù)的好處:

  • 其他文件中可以定義相同名字的函數(shù),不會(huì)發(fā)生沖突
  • 靜態(tài)函數(shù)不能被其他文件所用。
局部靜態(tài)變量

在局部變量之前加上關(guān)鍵字static,局部變量就被定義成為一個(gè)局部靜態(tài)變量。

  • 內(nèi)存中的位置:靜態(tài)存儲(chǔ)區(qū)
  • 初始化:未經(jīng)初始化的全局靜態(tài)變量會(huì)被程序自動(dòng)初始化為0(自動(dòng)對(duì)象的值是任意的,除非他被顯示初始化)
  • 作用域:作用域仍為局部作用域,當(dāng)定義它的函數(shù)或者語(yǔ)句塊結(jié)束的時(shí)候,作用域隨之結(jié)束。
全局靜態(tài)變量

在全局變量之前加上關(guān)鍵字static,全局變量就被定義成為一個(gè)全局靜態(tài)變量。

  • 內(nèi)存中的位置:靜態(tài)存儲(chǔ)區(qū)(靜態(tài)存儲(chǔ)區(qū)在整個(gè)程序運(yùn)行期間都存在)
  • 初始化:未經(jīng)初始化的全局靜態(tài)變量會(huì)被程序自動(dòng)初始化為0(自動(dòng)對(duì)象的值是任意的,除非他被顯示初始化)
  • 作用域:全局靜態(tài)變量在聲明他的文件之外是不可見(jiàn)的。準(zhǔn)確地講從定義之處開(kāi)始到文件結(jié)尾。
好處:

定義全局靜態(tài)變量的好處:

  • 不會(huì)被其他文件所訪問(wèn),修改
  • 其他文件中可以使用相同名字的變量,不會(huì)發(fā)生沖突

5. 請(qǐng)實(shí)現(xiàn)內(nèi)存復(fù)制函數(shù)void memcpy(void *dst const void *src,int size)

void?*memcpy(void?*dest,?const?void?*src,?unsigned?int?size)
{

????if(dest==NULL?||?src==NULL)
????{
????????return?dest;
????}
????
????void?*temp?=?dest;

????while(size--)
????{
????????*(char?*)dest?=?*(char?*)src;
????????dest?=?(char?*)dest? ?1;
????????src?=?(char?*)src? ?1;
????}

????return?temp;
}

6、進(jìn)程間通信的方式有

  1. 管道(pipe),流管道(s_pipe)和有名管道(FIFO)
  2. 信號(hào)(signal)
  3. 消息隊(duì)列
  4. 共享內(nèi)存
  5. 信號(hào)量
  6. 套接字(socket)

7、IPv4把所有的IP地址分為A、B、C、D、E五類。請(qǐng)寫出B類地址和C類地址的范圍和掩碼,D類地址的用途是什么?

A類IP地址范圍:0.0.0.0到127.255.255.255

B類IP地址范圍:128.0.0.0到191.255.255.255

C類IP地址范圍:192.0.0.0到223.255.255.255

D類IP地址范圍:224.0.0.0到239.255.255.255

E類IP地址范圍:224.0.0.0到254.255.255.255

D類地址用于多點(diǎn)播送

E類地址保留,僅作實(shí)驗(yàn)和開(kāi)發(fā)用

全零(“0.0.0.0”)地址指任意網(wǎng)絡(luò)。

全“1”的IP地址(“255.255.255.255”)是當(dāng)前子網(wǎng)的廣播地址。

8、請(qǐng)簡(jiǎn)述在linux中多進(jìn)程程序和多線程程序的區(qū)別。

9、寫一個(gè)標(biāo)準(zhǔn)的宏MINX,這個(gè)宏輸入兩個(gè)參數(shù)并返回較小的一個(gè)?

#define?MIN(A,?B)????((A)>(B)??(B)?:?(A))

10、什么是MMU,MMU的作用

MMU是Memory Management Unit(內(nèi)存管理單元)

1)虛擬內(nèi)存。有了虛擬內(nèi)存,可以在處理器上運(yùn)行比實(shí)際物理內(nèi)存大的應(yīng)用程序。為了使用虛擬內(nèi)存,操作系統(tǒng)通常要設(shè)置一個(gè)交換分區(qū)(通常是硬盤),通過(guò)將不活躍的內(nèi)存中的數(shù)據(jù)放入交換分區(qū),操作系統(tǒng)可以騰出其空間來(lái)為其它的程序服務(wù)。虛擬內(nèi)存是通過(guò)虛擬地址來(lái)實(shí)現(xiàn)的。

2)內(nèi)存保護(hù)。根據(jù)需要對(duì)特定的內(nèi)存區(qū)塊的訪問(wèn)進(jìn)行保護(hù),通過(guò)這一功能,我們可以將特定的內(nèi)存塊設(shè)置成只讀、只寫或是可同時(shí)讀寫

11、關(guān)鍵字volatile有什么含義,并給出幾個(gè)應(yīng)用場(chǎng)合。

volatile的本意是“易變的” 由于訪問(wèn)寄存器的速度要快過(guò)RAM,所以編譯器一般都會(huì)作減少存取外部RAM的優(yōu)化,但有可能會(huì)讀臟數(shù)據(jù)。當(dāng)要求使用volatile 聲明的變量的值的時(shí)候,系統(tǒng)總是重新從它所在的內(nèi)存讀取數(shù)據(jù),即使它前面的指令剛剛從該處讀取過(guò)數(shù)據(jù)。而且讀取的數(shù)據(jù)立刻被保存。

一般說(shuō)來(lái),volatile用在如下的幾個(gè)地方:

  • 1、中斷服務(wù)程序中修改的供其它程序檢測(cè)的變量需要加volatile;
  • 2、多任務(wù)環(huán)境下各任務(wù)間共享的標(biāo)志應(yīng)該加volatile;
  • 3、存儲(chǔ)器映射的硬件寄存器通常也要加volatile說(shuō)明,因?yàn)槊看螌?duì)它的讀寫都可能由不同意義;

12、“棧 stack”和“堆 heap”有什么區(qū)別,寫兩個(gè)函數(shù)分別在棧上和堆上分配內(nèi)存,在堆上分配內(nèi)存應(yīng)注意哪些問(wèn)題?

  • 1.申請(qǐng)方式
stack:

由系統(tǒng)自動(dòng)分配。例如,聲明在函數(shù)中一個(gè)局部變量int b; 系統(tǒng)自動(dòng)在棧中為b開(kāi)辟空間

heap:

需要程序員自己申請(qǐng),并指明大小,在c中malloc函數(shù)p1 = (char *)malloc(10);

  • 2.申請(qǐng)后系統(tǒng)的響應(yīng)
棧:

只要棧的剩余空間大于所申請(qǐng)空間,系統(tǒng)將為程序提供內(nèi)存,否則將報(bào)異常提示棧溢出。

堆:

首先應(yīng)該知道操作系統(tǒng)有一個(gè)記錄空閑內(nèi)存地址的鏈表,當(dāng)系統(tǒng)收到程序的申請(qǐng)時(shí),

會(huì)遍歷該鏈表,尋找第一個(gè)空間大于所申請(qǐng)空間的堆結(jié)點(diǎn),然后將該結(jié)點(diǎn)從空閑結(jié)點(diǎn)鏈表中刪除,并將該結(jié)點(diǎn)的空間分配給程序.

  • 3.申請(qǐng)大小的限制
棧:

棧頂?shù)牡刂泛蜅5淖畲笕萘渴窍到y(tǒng)預(yù)先規(guī)定好的,是一塊連續(xù)的內(nèi)存的區(qū)域,在WINDOWS下,棧的大小是2M ,如果申請(qǐng)的空間超過(guò)棧的剩余空間時(shí),將提示overflow。因此,能從棧獲得的空間較小。(有限內(nèi)存)

堆:

堆是向高地址擴(kuò)展的數(shù)據(jù)結(jié)構(gòu),是不連續(xù)的內(nèi)存區(qū)域。(自己分配)

void?fun(void)
{
????int?a[10];
????int?*p?=?(int?*)malloc(10*sizeof(int));
????if(p?==?NULL)
????{
????????return;
????}
}

13、請(qǐng)指出下面程序的錯(cuò)誤

unsigned?char?i?=?10;?
char?b?=?100;?
char*?p;?

void?f(void)?
{?
????While(–-i>=0)?
????{?
???????*(p )?=?b;?
????}?
}
p沒(méi)有分配空間

i是無(wú)符號(hào)型,自減操作會(huì)引發(fā)死循環(huán)

14、TCP/IP通信建立的過(guò)程怎樣,端口有什么作用?

端口作用:(連接作用)就是讓運(yùn)輸層的各種應(yīng)用進(jìn)程都能將其數(shù)據(jù)通過(guò)端口向下交付給運(yùn)輸層,以及讓運(yùn)輸層知道應(yīng)當(dāng)將其報(bào)文段的數(shù)據(jù)向上通過(guò)端口交付給應(yīng)用層相應(yīng)的進(jìn)程




END



掃碼關(guān)注華妹

查看更多精彩內(nèi)容


本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
關(guān)閉
關(guān)閉