| maison  | Hardware  | réseaux  | programmation  | Logiciel  | Dépannage  | systèmes |  
programmation  
  • C /C + + Programming

  • Computer Programming Languages

  • Delphi Programming

  • Programmation Java

  • Programmation JavaScript

  • PHP /MySQL Programmation

  • programmation Perl

  • Programmation Python

  • Ruby Programming

  • Visual Basics programmation
  •  
    Connaissances Informatiques >> programmation >> C /C + + Programming >> Content
    Comment faire pour supprimer remplissage d'une structure C
    mémoire informatique est généralement aligné sur une limite de taille égale à la taille du mot système . Sur un système 32 bits hypothétique , imaginez que cette taille de mot est de quatre octets. Dans le langage C , vous pouvez créer des structures qui stockent des données . Afin d'aligner à la taille de mot , le compilateur C peut ajouter le remplissage de la structure. Vous pouvez supprimer ce rembourrage en utilisant une directive de préprocesseur qui lui indique d'aligner les données différemment . Choses que vous devez
    C Environnement de développement intégré , comme Eclipse CDT
    compilateur C , un tel GCC
    Afficher plus Instructions
    1

    Chargez le C IDE par cliquant sur son icône du programme. Quand il s'ouvre, sélectionnez "Fichier /Nouveau /Projet " et choisissez " Projet C " pour créer un nouveau projet C . Un fichier de code source vide apparaît dans la partie éditeur de texte de l'IDE.
    2

    Créer un " struct " nommé "A" avec l'alignement de mémoire par défaut . Écrire la déclaration suivante au début du fichier de code source:

    struct { } A;
    3

    Ajouter des membres de données à la structure "A. " Par entier de mélange et types de caractères , vous vous assurez que le compilateur plots de la structure. Sur un système 32 bits , les deux premiers types de données int prennent chacun jusqu'à quatre octets de mémoire et sont parfaitement alignés tels quels. Toutefois, les deux types de données char prennent chacun un seul octet , et occupent ensemble deux octets de données . Le compilateur pad cela avec deux octets de données inutiles pour aligner correctement les données . Ajoutez les instructions suivantes à struct "A" en les plaçant entre les accolades après le mot

    int un " struct . " ;

    Int b;

    char a ; Photos

    char b ;
    4

    Créer une directive de préprocesseur qui lui indique d'alignement sur la limite de 1 octet , pas la limite de 4 octets :

    # pragma pack ( poussoir, 1)
    5

    Créer une autre structure , celle-ci nommé «B», et le placer immédiatement après la directive de préprocesseur écrit à l'étape précédente .

    struct { } B;
    6

    Remplissez struct "B" avec les mêmes types de données que struct "A", en écrivant les déclarations suivantes au sein de la accolades de struct " B. " Ces types de données seront en ligne à l'octet le plus proche, qui se trouve être de 10 ( quatre pour chaque int, un pour chaque char) . Il n'y aura pas de remplissage dans cette structure

    int a; .

    Int b;

    char a ;

    char b ;
    < br > 7

    réinitialiser l'alignement à son défaut par écrit la déclaration suivante:

    # pragma pack (pop)

    Previous :

    next :
      articles connexes
    ·Comment compiler un CPP avec un fichier d'en-tête 
    ·Comment lier la liste flux d'entrée sur le C + + 
    ·Comment faire pour installer Microsoft Visual C + + 
    ·Comment créer un Cipher en C 
    ·Comment créer un programme C + + dans Visual Studio 6.…
    ·Comment utiliser la fonction strcpy en C + + 
    ·Comment écrire un programme qui lit une chaîne de nom…
    ·Comment écrire un programme C + + de l'ordinateur qui …
    ·Comment régler pointeurs pour les retours covariantes 
    ·Comment formater du texte dans la programmation Win32 
      articles en vedette
    ·Comment créer un menu Arbre Avec PHP et MySQL 
    ·Comment supprimer un tableau associatif JavaScript 
    ·Comment faire pour déboguer des scripts Perl 
    ·Comment faire pour utiliser un fichier PHP externe en H…
    ·Comment convertir manuellement FoxPro VB6 
    ·Comment appeler une fonction dans VB.NET 
    ·Comment créer SSIS déploiement de paquet 
    ·Comment faire pour convertir compteur à pied en Java 
    ·Comment créer un Resultset De Exécuter sur un serveur…
    ·Comment allouer un VBS Dataset 
    Copyright © Connaissances Informatiques http://fr.wingwit.com