• # ya pas une bourde dans le code C?

    Posté par . En réponse au message Copie rapide de tableau. Évalué à 3.

    dans la version dite "optimisée"
    tu glisses ca:

    for(i=0;i<1024000;i++) (unsigned long)tab[i<<2]=(unsigned long)(45);

    ce qui pour moi signifie que tu stockes la valeur 45 dans un byte sur 4
    Le compilo trouve peut etre + optimal de faire un movb plutot qu'un movl dans ce cas là vu que tu ne forces qu'un byte.


    si tu veux forcer 4 bytes en meme temps il faut peut etre mieux utiliser ca:
    for(i=0;i<1024000;i++) (unsigned long)tab[i<<2]=(unsigned long)(0x63636363);

    Que dit le compilo?