7 ans de C et j’apprend encore!

12 sujets de 1 à 12 (sur un total de 12)

  • Yomgui

      #2299

      Bah mince alors, je viens de découvrir un truc du C-ANSI que je connaissait pas: pouvoir explicitement donner le nom des champs lors de l’initialisation d’une variable pendant sa définition.

      Soit mettre un point + nom du champ + = + valeur comme ceci:

      struct test

      {

      int field1;

      int field2;

      int field3;

      };

      struct test v =

      {

      .field3 = 45,

      .field1 = 32,

      .field2 = 0xff

      };

      On en apprend tous les jours…. 😮

      stan

        #45481

        J’ai rien compris :).

        CLS2086

          #45482

          il définit l’architecture du tableau de sa structure tout en remplissant des données.

          D’habitude les gens font l’un puis l’autre en utilsant un pointeur de table/structure.

          krabob

            #45483

            ah ouai 😮 , je connaissais pas non plus. C’est bien pasque ça permet d’expliciter les membres avec leurs valeurs.

            Tient, ça me fait penser qu’en lisant un bouquin de C ya 2 ans j’avais lu qu’il existe une syntaxe pour déclarer des “membres de structures” carrément dans des “champs de bit”. Du genre: tu déclares un entier 4 oct, puis tu dis: les bit 0-3 c’est un entier de 4 bit en temps que membre, les bit 4-12 c’est un autre entier,… et aprés tu peux faire des assignations directement sur ces membres.

            Faudrait que je retrouve ça: pratique pour du short code ou de la serialisation packé. (et le PPC a des instruction asm qui vont bien pour ça.)

            stan

              #45484

              Ah, j’ai compris :). C’est euh… intéressant.

              krabob

                #45485

                ah benvoilà:

                http://www.spi.ens.fr/~beig/systeme/langageC.html

                Les champs de bit:

                C’est une structure où l’on descend au niveau du bit.

                struct word {

                unsigned octet:8;

                unsigned fill:7;

                unsigned bit:1;

                unsigned demi:16;

                };

                donc aprés on peut faire:

                struct word mastruct;

                mastruct.fill = 127 ;

                Fab1

                  #45486

                  Les bitfields C c’est qd même beaucoup plus connu. C’est souvent utilisé pour des drivers d’ailleurs, pour manipuler des registres (souvent utilisé avec une union d’ailleurs), ou encore pour des trames.

                  corto

                    #45487

                    Yomgui a écrit :

                    struct test v =

                    {

                    .field3 = 45,

                    .field1 = 32,

                    .field2 = 0xff

                    };

                    On en apprend tous les jours…. 😮

                    Ouaip ! Ca je l’ai vu dans les sources de pilotes pour webcam.

                    C rulez !!!

                    crisot

                      #45488

                      Ha ben là je suis fier, c’est l’un des premiers trucs que j’ai appris en C !!!

                      :-D (copain copain copain) :-D

                      Yomgui

                        #45489

                        Tout ça me fait penser à acheter le K&R un de ces 4!


                        @Stan
                        : euh… ouai… 8-)

                        corto

                          #45490

                          Yomgui : Le K&R je l’ai trouvé à Cash Converter il y a deux semaines : je l’ai pris vu le prix ! Je vais y jeter un oeil mais après soit je le garde sous verre pour le côté référence, soit je le revends. J’ai “Méthodologie de la programmation en C” de JP Braquelaire et je le trouve mieux que le K&R. Plus lisible, plus complet, etc.

                          Yomgui

                            #45491

                            @corto: je vais tout simplement charger les docs sur les normes C89 et C99 sur le net… ça sera obligatoirement + complet ! :-)

                          12 sujets de 1 à 12 (sur un total de 12)

                          • Vous devez être connecté pour répondre à ce sujet.

                          Forums AmigaOS, MorphOS et AROS Développement 7 ans de C et j’apprend encore!

                          Amiga Impact