如何測試微控制器的 C 語言資料型別? 如果您有任何問題,請詢問

發布 科技 2024-06-20
5個回答
  1. 匿名使用者2024-01-29

    1.這是由不同編譯器引起的長度差異。

    2.它仍然與編譯器有關,IAR 針對不同的微控制器有不同的編譯器。

    它與雙倍的長度相同也就不足為奇了,我們也是如此。

  2. 匿名使用者2024-01-28

    1. int 指標大小為 2,沒問題,keil 結果是 3,這有點奇怪,應該和編譯器有關。

    2.同樣是IAR,430支援無符號長長,NEC不支援,這與微控制器本身支援的資料型別有關,與編譯器無關。

    3.浮點數為IEEE-754標準,4個位元組,double占用4個位元組的記憶體,沒有問題,long double占用8個位元組。

  3. 匿名使用者2024-01-27

    我不需要在程式中浮動,也許我的系統不需要它。 似乎他們中的一些人強迫浮點結果成型。

    keil 中的指標不是固定的三個位元組,通用指標是三個位元組,通用指標不指定儲存間隔; 乙個特殊的指標是兩個位元組,乙個特殊的指標同時定義了指標的儲存間隔。

    例如,unsigned char *gp;

    這裡的 gp 指標沒有指定儲存哪些程式碼、資料和 idata 儲存區間,所以 keil 在分配記憶體時,會使用三個位元組 a、b、c、a 來儲存編譯器分配的儲存區域,b 儲存 gp 的高位址,c 儲存 gp 的低位址。

    unsigned char code/data/idata *sp;

    這裡的 sp 指定了儲存區域,因此 keil 不必在編譯時為其分配位元組來儲存 sp 定義的間隔。 就是這樣,指標 keil 只分配兩個位元組,b 和 c。

    因為我沒有接觸過MSP系列,所以我對IAR編譯器不熟悉。

  4. 匿名使用者2024-01-26

    可以利用微控制器的定址能力來分析,如果微控制器的資料儲存區或程式儲存區超過16位,也就是65535,那麼你用乙個雙位元組指標指向位址65535,該怎麼辦?

    你提到的問題似乎與微控制器的型別有關。 ,

  5. 匿名使用者2024-01-25

    1、uchar state1;main 函式中有乙個 state1 變數,但整個程式並沒有改變數量定義,所以我們可以看到第乙個空的是這個變數的定義。

    2、state1=0xfe;或 state1= 1; 在圖中,LED被驅動為低電平,D1為P10,State1的值在環路中直接分配給P1,因此為了使D1明亮,State1的值必須=0xfe

    3、temp=4;該問題要求光按 d1 3 5 7 執行,只有 4 步,而 for 迴圈的步長值只有 -1 (temp--) 結束條件為 temp=0,所以 temp 的初始值應為 = end value - step value number of steps = 0 - (-1) 4 = 4。

    4、state1=(state1<<2)+3;如果此語句的前半部分向左移動 2 位,則較低的 2 位變為 0,並且需要新增 2 個 1(即 0000 0011b=3)以關閉較低 2 位的燈。

    5、j

相關回答
9個回答2024-06-20

不,double 是 8 個位元組,float 是 4 個位元組,所以精度不同,取值範圍也不同。 >>>More

2個回答2024-06-20

1. 直接呼叫庫函式。

2.以下是該函式的配置,從中可以看出,當i=0時,埠對應的燈亮,當i=1時,埠對應的燈亮,在for迴圈中,兩組燈交替閃爍。 >>>More

8個回答2024-06-20

資料型別:一般來說,它是資料的值範圍。 不同型別的資料意味著不同的東西以及它們占用的儲存空間。 例如: >>>More

30個回答2024-06-20

idata:定義的變數在 00 h ffh ram 和 256 位元組的範圍內,可以讀寫變數。 >>>More

18個回答2024-06-20

讓我們先對你的問題做點什麼:從你的描述來看,你似乎想把重點放在微控制器上。 如果對C語言的要求不高,按照形式化流程學習指標和結構基本就夠了,而譚浩強的書更多的是針對PC的,有些東西你看不懂。 >>>More