在MPLAB IDE中,数据类型的大小是多少(int
,unsigned int
,float
,unsigned float
,char
...)?
答案 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编译器上的整数数据类型的实现。
答案 4 :(得分:-2)
#include<stdint.h>
long x;
这两件事帮我度过了;) 其余的信息。已经被其他人分享了。