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