• [^] # Re: Aucune légitimité

    Posté par (site web personnel) . En réponse au lien B. Kernighan (co-créateur d'Unix) sur Rust : « Je ne pense pas qu'il va remplacer C tout de suite ». Évalué à 1.

    struct machin* truc;
    truc->champ1[index].chose = 3;

    Ton exemple ne présente qu'une redirection : tu lis l'adresse dans la mémoire pointée par truc et la stockes dans un registre r. Puis l'adresse mémoire du reste est de la forme r ×ばつ s + o. Il y a un peu d'arithmétique car o va dépendre de index. Il y a des restrictions concernant s mais on peut faire en sorte de les respecter. Et accessoirement être plus optimal sur les accès critiques aux données : globalement faire en sorte que dans les boucles les accès mémoires soient bien séquentiels et continus. Ce qui coûte dans les redirections c'est le côté "random" des accès. Typiquement c'est la blague bien connue du tableau à 2 indices type** qui est en pratique stocké à plat et optimisé avec la convention de parcours du dernier indice au premier. En pratique, vu le mal de crâne que sont les pointeurs de pointeurs de... j'ai du mal à croire que c'est critique.