MPLAB IDE数据类型大小

时间:2009-11-10 10:21:42

标签: c size mplab size-type

在MPLAB IDE中,数据类型的大小是多少(intunsigned intfloatunsigned floatchar ...)?

5 个答案:

答案 0 :(得分:6)

如果不知道要编译代码的CPU,这很难。假设,例如Microchip针对PIC18的C18编译器,User Guide表示以下基本类型大小:

TYPE                SIZE     RANGE
char(1,2)            8 bits  -128 127
signed char          8 bits  -128 127
unsigned char        8 bits  0 255
int                 16 bits  -32,768 32,767
unsigned int        16 bits  0 65,535
short               16 bits  -32,768 32,767
unsigned short      16 bits  0 65,535
short long          24 bits  -8,388,608 8,388,607
unsigned short long 24 bits  0 16,777,215
long                32 bits  -2,147,483,648 2,147,483,647
unsigned long       32 bits  0 4,294,967,295

请注意,这包括一些在C中不标准的类型(short long)。

答案 1 :(得分:1)

我会对这种概括持谨慎态度。 MPLAB只是一个IDE - 它适用于不同的芯片。 Microchip具有8位控制器,如PIC18F,16位和32位控制器。每种数据的数据类型可能不同,对性能有严重影响。即对于8位芯片,16位和32位数据类型可以用软件模拟,这并不总是你想要的。

答案 2 :(得分:1)

int,long等的值永远不会在所有编译器(reference)中进行标准定义。因此,建议使用该库:

#include <stdint.h>

要将此库用于您自己的目的,请尝试使用以下代码:

typedef uint8_t    BYTE
typedef uint16_t   WORD
typedef uint32_t   LONG

然后您只需使用它们来定义变量。此方法通常使用integer.h文件来存储这些定义,并在需要的地方包含。

答案 3 :(得分:1)

以下是不同MPLAB XC编译器上的整数数据类型的实现。

  1. 8位设备的数据类型(在XC8编译器上实现): enter image description here

  2. 16位设备的数据类型(在XC16编译器上实现): enter image description here

  3. 32位设备的数据类型(在XC32编译器上实现):enter image description here

答案 4 :(得分:-2)

#include<stdint.h>
long x;

这两件事帮我度过了;) 其余的信息。已经被其他人分享了。