程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Keil MDK編譯器的數據類型定義,keilmdk

Keil MDK編譯器的數據類型定義,keilmdk

編輯:關於C語言

Keil MDK編譯器的數據類型定義,keilmdk


 1 #include "usart.h"
 2 int main()
 3 {
 4     USART1_Config();    //串口初始化,以下信息通過串口打印
 5     printf("char: %d\r\n",sizeof(char));
 6     printf("unsigned char: %d\r\n",sizeof(unsigned char));
 7     printf("short: %d\r\n",sizeof(short));
 8     printf("unsigned short: %d\r\n",sizeof(unsigned short));
 9     printf("int: %d\r\n",sizeof(int));
10     printf("unsigned int: %d\r\n",sizeof(unsigned int));
11     printf("long: %d\r\n",sizeof(long));
12     printf("unsigned long: %d\r\n",sizeof(unsigned long));
13     printf("float: %d\r\n",sizeof(float));
14     printf("double: %d\r\n",sizeof(double));
15     while(1);
16 }

通過以上一段代碼,得到了Keil MDK編譯器對常用數據類型長度的定義。

結果如下:

char: 1
unsigned char: 1
short: 2
unsigned short: 2
int: 4
unsigned int: 4
long: 4
unsigned long: 4
float: 4
double: 8




怎看keil編譯器定義的數據類型占多少位?

辦法1:直接在代碼中,使用sizeof運算符,例如a=sizeof(int),那麼a的值就是int的長度。
辦法2:編譯成功後,打開.map文件(或.m51),查找SYMBOL
例如:
00000036H SYMBOL DATA BYTE temp
00000037H SYMBOL DATA BYTE temp2
temp,temp2是變量名,00036H是變量起始地址,DATA表示在data區,BYTE表示變量是BYTE型的,也就是一個字節。你可以通過不同變量的地址差來計算長度。
 

KEIL MDK中int32_t類型是否已經默認存在?

一般情況下keil裡面沒有那些類型定義,如果是別人編好的程序中呢,也許他自己有定義類型別名,也許是你自己沒有包含響應的頭文件進去,其實你也可以自己定義,也不是很麻煩的事情呀。
這樣做的好處就是沒必要每次都寫很長一串類型,簡化程序的一個目的,這別名也挺好看嘛,一看就知道是32位的整形,只要能知道他是什麼作用,那麼改起來也容易,也沒必要太過糾結了!
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved