• [^] # Re: fopen()

    Posté par . En réponse au message libc et retour chariot. Évalué à 2.

    Alors c'est ton prof qui devrait réviser :

    http://www.isty-info.uvsq.fr/~rumeau/fclc/fclc008.html#q_5(...)

    En C, sizeof(un_type) == sizeof(unsigned un_type) quel que soit le type utilisé.

    En effet, unsigned ne fait que dire qu'on utilise des valeurs non signées, allant de 0 à [valeur maximale possible sur ce nombre de bytes]. Tandis qu'en signed (par défaut, donc), on a un type signé, le type est obtenu grâce au complément à deux...

    Soit ton prof ne connaît pas ce qu'il enseigne, soit c'est toi qui a mal compris.

    Il t'a probablement dit que sous MS-DOS, un caractère n'était représentable que par la norme ASCII non étendue, qui encode les caractères sur 7 bits. Il reste donc un bit inutilisé pour contenir des caractères imprimables. La norme ASCII étendue va quant à elle jusqu'au 8e bit. Toujours est-il que les char sont sur un byte, quelle que soit la taille du byte sur cette architecture. C'est la définition du char qui veut cela, et c'est la base du langage C.