Размеры типов данных MPLAB IDE

Вопрос:В MPLAB IDE каковы размеры типов данных (int, unsigned int, float, unsigned float, char...)? Ответ №1Это сложно, не зная, для какого процессора вы хотите скомпилировать код. Предполагая, например, Компилятор Microchip C18 для PIC18, Руководство пользователя содержит следующие основные размеры типов: TYPE SIZE RANGE char(1,2) 8 bits -128 127 signed char 8 bits -128 127 unsigned

Вопрос:

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

Ответ №1

Это сложно, не зная, для какого процессора вы хотите скомпилировать код. Предполагая, например, Компилятор 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

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

Ответ №3

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

#include <stdint.h>

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

typedef uint8_t BYTE typedef uint16_t WORD typedef uint32_t LONG

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

Ответ №4

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

  • Типы данных для 8-разрядных устройств (реализация на компиляторе XC8):

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

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

Ответ №5#include<stdint.h> long x;

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

Оцените статью
Добавить комментарий