Y a-t-il une en-tête C / C ++ standard avec des définitions d'octets, kilobyte, mégaoctet, ...? Je ne veux pas faire de ses propres définitions. C'est sale à mon avis.
Exemple: p>
4 Réponses :
Non, il n'y a pas de définitions standard de ce type. Probablement parce que la valeur ajoutée serait très petite.
Vous voyez souvent des choses comme: p> ceci utilise le changement de vitesse pour exprimer l'opération x em > * 2 10 sup> identique à celui x em> * 1,024, et le même pour 2 20 sup> 1 024 * 1 024, soit 1 048 576. Cela "exploite" le fait des définitions classiques des kilobytes, des mégaoctets, etc. des pouvoirs de deux, en informatique. P> la distribution à Utilisation ci-dessus, il devient assez pratique d'utiliser celles-ci dans le code: p> ou
Si (statbuf.st_size> = kb (8))
{
printf ("fichier est 8 kb (ou plus grand) \ n");
} p> Mais vous pouvez bien sûr, il suffit de les utiliser pour définir davantage: P> Taille_t code> est bon car ce sont des tailles et Nous voulons les avoir facilement utilisables comme des arguments par exemple
malloc () code>. p>
#define MEGABYTE MB(1)
D'accord. J'ai fait ma propre définition #define mégabyte 1048576 code>. Mais votre réponse est assez cool.
Notez que c'est mégaoctet à l'octet. Si vous voulez des octets à Megabyte, vous faites x >> 20 code>
Il n'y a pas. Mais pourquoi vous ne les faites pas par votre propre: et aussi p> En savoir plus ... p> p>
Je suggérerais vraiment ze_t code> comme type de tailles. Parce que c'est un type de tailles.
Comme d'autres réponses indiquées, il n'y a pas. Une belle solution en C ++ 11 consiste à utiliser littéraux définis par l'utilisateur:
Encore mieux, j'aime l'idée de y combiner avec les modèles de ratio C ++ utilisés par STD :: Chrono. De cette façon, toutes les unités de «taille» ont leur propre type avec une conversion implicite entre eux.
Pas que cela ajoute beaucoup, mais j'aime bien ce formulaire: que vous pouvez utiliser comme p>
Pourquoi au monde en auriez-vous besoin en premier lieu? Ces choses ne sont pas dépendantes de la plate-forme ...
Il n'y a pas. Cependant, certaines personnes ont convenu d'appeler
1024 * 1024 code> A
MEGA code> et
1000 * 1000 code> A
mégaoctet code>.
@alk n'a jamais entendu parler de cette convention auparavant. Avez-vous une référence?
Un en-tête standard ISO C ++ définirait un mégaoctet sous forme de 1.000.000 octets, par ISO / CEI 80000-13. Aussi, par la norme C ++, qui ne signifierait pas nécessairement un million d'octets. Est-ce vraiment ce que vous vouliez?