題一:
關鍵字volatile在編譯時有什麼含義?並給出三個不同使用場景的例子(可以偽**或者文字描述)。
思考過後,再到下方尋找答案
題二:c語言中static關鍵字的具體作用有哪些 ?
思考過後,再到下方尋找答案
題三:請問下面三種變數宣告有何區別?請給出具體含義
int const *p;
int* const p;
int const* const p;
思考過後,再到下方尋找答案
題一答案:
用volatile關鍵字定義變數,相當於告訴編譯器,這個變數的值會隨時發生變化,每次使用時都需要去記憶體裡
重新讀取它的值,並不要隨意針對它作優化。
建議使用volatile變數的場所:
(1) 並行裝置的硬體暫存器
(2) 乙個中斷服務子程式中會訪問到的非自動變數(全域性變數)
(3) 多執行緒應用中被幾個任務共享的變數
題二答案:
在函式體,乙個被宣告為靜態的變數在這一函式被呼叫過程中維持其值不變。
在模組內(但在函式體外),乙個被宣告為靜態的變數可以被模組內所用函式訪問,但不能被模組外其它函式
訪問。它是乙個本地的全域性變數。
在模組內,乙個被宣告為靜態的函式只可被這一模組內的其它函式呼叫。那就是,這個函式被限制在宣告它的
模組的本地範圍內使用。
static全域性變數與普通的全域性變數有什麼區別:static全域性變數只初使化一次,防止在其他檔案單元中被引用;
static函式與普通函式有什麼區別:static函式在記憶體中只有乙份,普通函式在每個被呼叫中維持乙份拷貝
題三答案:
乙個指向常整型數的指標
乙個指向整型數的常指標
乙個指向常整型數的常指標
16道嵌入式 語言面試題
預處理器 preprocessor 1.用預處理指令 define 宣告乙個常數,用以表明1年中有多少秒 忽略閏年問題 define seconds per year 60 60 24 365 ul 我在這想看到幾件事情 1 define 語法的基本知識 例如 不能以分號結束,括號的使用,等等 2 ...
嵌入式面試題C語言 一 陣列一道面試題
這道題在工作中實際程式設計很少能遇到,至少我沒有涉及到,但是低於陣列指標其實是一種深入理解或者說另一種思考的角度,這是一道面試題 int a 1.printf a 5 is d n a 5 2.printf 5 a is d n 5 a 這就是考題 這裡直接給出結果 6 6 在我試驗輸出這個結果的時...
嵌入式面試題
15 typedef 在c語言中頻繁用以宣告乙個已經存在的資料型別的同義字。也可以用預處理器做類似的事。例如,思考一下下面的例子 define dps struct s typedef struct s tps 以上兩種情況的意圖都是要定義dps 和 tps 作為乙個指向結構s指標。哪種方法更好呢?...