7 ans de C et j’apprend encore!

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

  • Yomgui

    • Messages : 1589
    #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

    • Messages : 508
    #45481

    J’ai rien compris :).

    CLS2086

    • Messages : 3290
    #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

    • Messages : 1171
    #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

    • Messages : 508
    #45484

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

    krabob

    • Messages : 1171
    #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

    • Messages : 1578
    #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

    • Messages : 1129
    #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

    • Messages : 1436
    #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

    • Messages : 1589
    #45489

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


    @Stan
    : euh… ouai… 8-)

    corto

    • Messages : 1129
    #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

    • Messages : 1589
    #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