Thursday, January 21, 2010

ADS1.2 C语言基本数据类型宽度定义

在一些场合下需要知道确切数据类型宽度,比如移植操作系统时。ADS是ARM工程构建比较常用的一个IDE,今天需要了解ADS1.2编译器的C语言基本数据类型宽度在官方文档里面的是如何定义的,于是找了一下貌似没有明确的写数据类型宽度的文字,只是在Compilers and Libraries Guide文档(DUI 0067D)里面的C and C++ Compiler Implementation Limits部分定义了D.3 Limits for integral numbers(Page261)和D.4 Limits for floating-point numbers(Page262),从这两部分定义的各个数据类型的最大最小值就可以看出各种基本数据类型的宽度了。在实际使用中可定义如下:
/*
*********************************************************************************************************
*                                              DATA TYPES
*                                         (Compiler Specific)
*********************************************************************************************************
*/

typedef unsigned char  BOOLEAN;
typedef unsigned char  INT8U;                    /* Unsigned  8 bit quantity                 */
typedef signed   char  INT8S;                    /* Signed    8 bit quantity                    */
typedef unsigned short   INT16U;                   /* Unsigned 16 bit quantity              */
typedef signed   short   INT16S;                   /* Signed   16 bit quantity                 */
typedef unsigned long  INT32U;                   /* Unsigned 32 bit quantity                */
typedef signed   long  INT32S;                   /* Signed   32 bit quantity                   */
typedef float          FP32;                     /* Single precision floating point                */
typedef double         FP64;                     /* Double precision floating point            */

No comments:

Post a Comment