一、程式設計開發能力:
1、用預處理指令#define宣告一個常數,用以表明一年中有多少秒(忽略閏年問題);寫一個“標準”巨集MIN函式,這個巨集輸入兩個引數並返回較小的一個。
2、用變數a給出下面的定義:
(1)一個整型數(An integer);
(2)一個指向整型數的指標(A pointer to an integer);
(3)一個指向指標的指標,它指向的指標是指向一個整型數(A pointer to a pointer to an integer);
(4)一個有10個整型數的陣列(An array of 10 integers);
(5)一個有10個指標的陣列,該指標是指向一個整型數的(A array of 10 pointers to integers);
(6)一個指向有10個整型陣列的指標(A pointer to an array of 10 integers);
(7)一個指向函式的指標,該函式有一個整型引數並返回一個整型數(A pointer to a function that takes an integer as an argument returns an integer);
(8)一個有10個指標的陣列,該指標指向一個函式,該函式有一個整型引數並返回一個整型數(An array of 10 pointers to functions that take an integer argument and return an integer);
3、關鍵字volatile有什麼含義?並舉出三個不同的例子。
4、嵌入式系統總是要使用者對變數或暫存器進行位操作,給定一個整型變數a,寫兩段程式碼,第一個設定a 的bit 3,第二個清除a 的bit 3,在以上操作中,要保持其他位不變。
5、嵌入式系統經常具有要求程式設計師去訪問某特定的記憶體位置的特點,在某工程中,要去設定一絕對地址為0x67a9的整型變數的值為0xaa66。編譯器是一個純粹的ANSI編譯器,寫程式碼去完成這一任務。
6、中斷是嵌入式系統中的重要組成部分,這導致了很多編譯開發商提供一種擴充套件——讓標準C支援中斷,具有代表性的是,產生一個新的關鍵字:__interrupt,下面的程式碼就使用了__interrupt去定義了一箇中斷子程式(ISR),請評論下這段程式碼的__interrupt,
double compute_area(double radius) {
double area=PI*radius*radius; print f("n Area"=%f,area); return area; }
7、儘管不像非嵌入式計算機那樣常見,嵌入式系統還是有從堆(heap)中動態分配記憶體的過程的,那麼嵌入式系統中,動態分派記憶體可能發生的問題是什麼?
8、關鍵字static 的作用是什麼?
9、#include 與#include "file.h"的區別? 10、請說出const 與#define 相比,有何優點?