Размеры типов данных MPLAB IDE - PullRequest
0 голосов
/ 10 ноября 2009

В MPLAB IDE, какие размеры типов данных (int, unsigned int, float, unsigned float, char ...)?

Ответы [ 5 ]

6 голосов
/ 10 ноября 2009

Это сложно, не зная, для какого процессора вы хотите скомпилировать код.Предполагая, например, компилятор Microchip C18 для PIC18, Руководство пользователя устанавливает следующие основные размеры типов:

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

Обратите внимание, что это включает в себя некоторые типы (short long), которые не являются стандартными вC.

2 голосов
/ 23 ноября 2017

Вот реализация целочисленных типов данных на разных компиляторах MPLAB XC.

  1. Типы данных для 8-битных устройств (реализация на компиляторе XC8): enter image description here

  2. Типы данных для 16-разрядных устройств (реализация на компиляторе XC16): enter image description here

  3. Типы данных для 32-разрядных устройств (реализация на компиляторе XC32): enter image description here

1 голос
/ 21 января 2016

Значения int, long и т. Д. Никогда не определяются стандартно для всех компиляторов ( ссылка ) По этой причине рекомендуется использовать библиотеку:

#include <stdint.h>

Чтобы использовать эту библиотеку в своих целях, попробуйте использовать код следующим образом:

typedef uint8_t    BYTE
typedef uint16_t   WORD
typedef uint32_t   LONG

Тогда вы просто используете их для определения ваших переменных. Этот метод обычно использует файл integer.h для хранения этих определений и включается везде, где это необходимо.

1 голос
/ 10 ноября 2009

Я бы остерегался таких обобщений. MPLAB - это просто IDE - он подходит для разных чипов. Microchip имеет 8-битные контроллеры, такие как PIC18F, 16-битные и 32-битные контроллеры. Типы данных для каждого из них могут быть разными и иметь серьезные последствия для производительности. То есть для 8-битных чипов 16- и 32-битные типы данных могут эмулироваться программно, что не всегда то, что вам нужно.

0 голосов
/ 04 февраля 2017
#include<stdint.h>
long x;

Эти две вещи помогли мне пройти;) И остальная информация. уже опубликован другими пользователями.

...