• # J'ai glissé

    Posté par  (site web personnel, Mastodon) . Évalué à 3 (+0/-0).

    Si quelqu'un peut remplacer le w par une apostrophe dans le titre, ça serait super. Mon clavier me joue des tours mais en général il ne se blo

  • # Oh

    Posté par  (site web personnel) . Évalué à 6 (+4/-0).

    Bon, moi j'aimerais déjà pouvoir faire du C23 et malheureusement beaucoup de mes environnements m'en empêche (surtout dans l'embarqué). Ce que j'aime le plus en C23 c'est

    • initialiser des objets 100% à 0 (y compris les bits de padding) avec struct foo f = {}
    • spécifier des enum pour avoir un meilleur support des IDEs et une lisibilité du code mais en restant utile pour des structure binaires (e.g. enum type : uint8_t)

    Pour la nouvelle norme

    1. Les cases range, bordel je veux ça depuis un bail
    2. le 3367, je comprends pas le nommage stdc_, ça va pas du tout avec l'existant

    AI is a mental disorder

    • [^] # Re: Oh

      Posté par  (site web personnel, Mastodon) . Évalué à 4 (+1/-0).

      Le nommage stdc_ est très brièvement justifié dans l'article. Historiquement, seules les quelques premières lettres (8, je crois) d'un nom de symbole étaient significatives. Ce n'était donc pas garanti de pouvoir avoir masuperfonction1 et masuperfonction2 (les deux pourraient voir leur symbole tronqué en "masuperf").

      Les versions précédentes du C utilisaient donc des abbréviations de plus en plus obscures (memcpy, strcmp, wmbstocstr, …) pour ne pas avoir de conflits dans ce cas.

      La limite ayant été augmentée à 31 caractères, en utiliser 5pour le préfixe stdc_ devient raisonable.

      Personellement je suis un peu embêté par le retrait des nombres octals. Je comprend la logique, mais ça ne va pas faciliter la migration de code existant qui en a besoin, ni de pouvoir écrire du code compatible avec plusieurs versions du standard.

      • [^] # Re: Oh

        Posté par  (site web personnel, Mastodon) . Évalué à 1 (+0/-0). Dernière modification le 14 juin 2025 à 21:54.

        seules les quelques premières lettres

        Seulement pour les fonction C standard. Et cela se justifie par le fait, qu'elle sont plus simple à mémoriser et plus rapide à écrire. Bon aujourd'hui avec les bons système d'auto-complétion, c'est moins utile. Et surtout avec les ajouts de fonctions, notamment de fonctions plus sécurisé (sans enlever les ancienne pour la rétro-compatibilité), ça devient un peu complexe.

        Mais sinon, je trouve très parlant les noms court:

        • strcpy : "string copy"

        • memcpy : "memory copy"

        Le problème c'est quand on en rajoute. strcpy devient ainsi "strncpy" "string copy n characters" (pour la sécu). Et après : https://learn.microsoft.com/fr-fr/cpp/c-runtime-library/reference/strncpy-strncpy-l-wcsncpy-wcsncpy-l-mbsncpy-mbsncpy-l?view=msvc-170
        On se retrouve avec des versions par type: l pour un long, i pour l'entier, s pour la string. Puis des versions par destination…

        Sous licence Creative common. Lisez, copiez, modifiez faites en ce que vous voulez.

Envoyer un commentaire

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.