Dans MPLAB ce qui est la taille des types de données (int
, unsigned int
, float
, unsigned float
, char
...)?MPLAB IDE type de données de tailles
Répondre
Ceci est difficile sans savoir pour quelle CPU vous voulez compiler du code. En supposant, par exemple, Le compilateur C18 de Microchip pour PIC18, les User Guide énonce les tailles de type fondamentales suivantes:
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
Notez que ceci inclut certains types (short long
) qui ne sont pas standard C.
Je me méfie de ces généralisations . MPLAB est juste un IDE - il convient à différentes puces. Microchip dispose de contrôleurs 8 bits comme les contrôleurs PIC18F, 16 bits et 32 bits. Les types de données pour chacun peuvent être différents et avoir des implications sérieuses pour la performance. C'est à dire. pour les puces de 8 bits, les types de données 16 et 32 bits peuvent être émulés dans un logiciel, ce qui n'est pas toujours ce que vous voulez.
Les valeurs pour int, long, etc., ne sont jamais définies de manière standard sur tous les compilateurs (reference). Pour cette raison, il est conseillé d'utiliser la bibliothèque:
#include <stdint.h>
Pour utiliser cette bibliothèque pour vos propres besoins, essayez d'utiliser le code comme suit:
typedef uint8_t BYTE
typedef uint16_t WORD
typedef uint32_t LONG
Ensuite, vous utilisez juste ceux-ci pour définir vos variables. Cette méthode utilise généralement un fichier integer.h pour stocker ces définitions et est incluse partout où cela est nécessaire.
#include<stdint.h>
long x;
Ces deux choses m'a aidé à traverser;) Et l'info reste. est déjà partagé par d'autres personnes.
Voici l'implémentation de types de données entiers sur différents compilateurs MPLAB XC.
Puis-je vous suggérer d'indiquer que ces valeurs sont pour le compilateur C18 de Microchip pour la famille PIC18? Je sais que le guide de l'utilisateur lié fournit cette information, mais cela rendrait cette réponse plus complète pour l'inclure ici aussi. De plus, étant donné que la question ne spécifie pas de compilateur et de microcontrôleur cible, il convient de souligner que les types peuvent être de tailles différentes pour d'autres cibles. –