Tencent 電話面試C語言問題彙總

2021-07-09 19:55:02 字數 1265 閱讀 4199

1、四個標頭檔案分別為:a.h b.h c.h d.h。其中:b.h和c.h都包含a.h;d.h需要包含b.h和c.h;如何解決此時d.h重複包含a.h的問題?

在所有會被包含的標頭檔案中加入

ifndef __def_***_h

define __def_***_h …此處為要包含的其它標頭檔案…

endif

2、32位機器有結構體

32位機器中double佔64位=8個位元組,char佔乙個位元組,但是為了位元組對齊,前面兩個char型共佔4個位元組,故總共12個位元組。

typedef

struct testtest_t;

sizeof(test_t) = ?

3、程序間通訊有幾種方式?詳細說一下訊號量工作原理

(1). 管道( pipe ):管道是一種半雙工的通訊方式,資料只能單向流動,而且只能在具有親緣關係的程序間使用。程序的親緣關係通常是指父子程序關係。

(2) 有名管道 (named pipe) : 有名管道也是半雙工的通訊方式,但是它允許無親緣關係程序間的通訊。

(3) 訊號量( semophore ) : 訊號量是乙個計數器,可以用來控制多個程序對共享資源的訪問。它常作為一種鎖機制,防止某程序正在訪問共享資源時,其他程序也訪問該資源。因此,主要作為程序間以及同一程序內不同執行緒之間的同步手段。

(4) 訊息佇列( message queue ) : 訊息佇列是由訊息的鍊錶,存放在核心中並由訊息佇列識別符號標識。訊息佇列克服了訊號傳遞資訊少、管道只能承載無格式位元組流以及緩衝區大小受限等缺點。

(5) 訊號 ( sinal ) : 訊號是一種比較複雜的通訊方式,用於通知接收程序某個事件已經發生。

(6) 共享記憶體( shared memory ) :共享記憶體就是對映一段能被其他程序所訪問的記憶體,這段共享記憶體由乙個程序建立,但多個程序都可以訪問。共享記憶體是最快的 ipc 方式,它是針對其他程序間通訊方式執行效率低而專門設計的。它往往與其他通訊機制,如訊號兩,配合使用,來實現程序間的同步和通訊。

(7) 套接字( socket ) : 套解口也是一種程序間通訊機制,與其他通訊機制不同的是,它可用於不同及其間的程序通訊。

4、為什麼現在不提倡用strcpy,可以用什麼函式替代?

strncpy

5、udp協議,tcp協議,簡要說明一下socket工作原理。

6、c記憶體分配的大致情況。

7、c語言中static關鍵字的特殊性。

8、檢視cpu占有率的命令是?

top -n 10重新整理10次後退出。

C 面試100問 虛函式

參考 實現了多型機制。多型 polymorphism 允許將子類型別的指標賦值給父類型別的指標,賦值之後,父指標就可以根據當前賦值給它的子型別的特性以不同的方式運作。charlie calverts對多型的描述 多型性是允許你將父物件設定成為乙個或更多的他的子物件相等的技術,賦值之後,父物件就可以根...

C語言面試

2 評價下面的 片斷 unsigned int zero 0 unsigned int compzero 0xffff 對於乙個 int型不是 16位的處理器為說,上面的 是不正確的。應編寫如下 unsigned int compzero 0 這一問題真正能揭露出應試者是否懂得處理器字長的重要性。在...

C語言面試

首先先看這篇部落格,不是我自己的但是能有不少幫助,這裡部分算抄襲這位大牛的部落格 正確答案 define min a,b a b a b 錯誤答案 define min a,b a b a b 或者 define min a,b a b a b 迴圈演算法 link node reverse lin...