Maison  >  Article  >  Opération et maintenance  >  Combien y a-t-il d'octets en bref sous Linux ?

Combien y a-t-il d'octets en bref sous Linux ?

WBOY
WBOYoriginal
2022-07-13 10:40:464334parcourir

Sous Linux, short occupe 2 octets sur les plates-formes 32 bits et 64 bits ; sous Linux, seuls long et void (en langage C, void est un "type indéterminé") sont en 32 bits 4 octets, ce qui est 8 octets en 64 bits.

Combien y a-t-il d'octets en bref sous Linux ?

L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.

Combien y a-t-il d'octets en short sous Linux

Combien y a-t-il doctets en bref sous Linux ?

On voit qu'il n'y a que long (type entier long), void* (en langage C, void est "type incertain"), 4 octets sur 32 -bit et 64 bits 8 octets.

Connaissances étendues

char occupe 1 octet, short occupe 2 octets, int, float et long occupent tous 4 octets et double occupe 8 octets

La longueur du pointeur est liée au bus d'adresse. Étant donné que le pointeur enregistre une adresse, celle de 32 bits fait 4 octets et celle de 64 bits fait 8 octets.

J'ai trouvé un problème. Le code suivant a été exécuté sous un système win10 64 bits. Il faut dire que int occupe 8 octets, mais plus tard, je me suis trompé ; le projet que j'ai créé est une application console win32, ce qui signifie que le compilateur est de 32 bits - "Le nombre d'octets qu'un int occupe est déterminé non seulement par le compilateur, mais également par le processeur, la machine virtuelle ou le système d'exploitation, mais en dernière analyse, il est déterminé par le compilateur

Sous 64 bits." win10, sous les blocs de code console win32

#include "iostream"
using namespace std;
int main()
{
double *p = NULL;
cout<<sizeof(char)<<endl;
cout<<sizeof(short)<<endl;
cout<<sizeof(int)<<endl;
cout<<sizeof(float)<<endl;
cout<<sizeof(long)<<endl;
cout<<sizeof(double)<<endl;
cout<< sizeof(char *) << sizeof(short *) << sizeof(int *) << sizeof(p) << sizeof(double *)<<endl;
return 0;
}

Le résultat est :

1
2
4
4
4
8
44444

On peut voir de ce qui précède que char occupe 1 octet, short occupe 2 octets, int, float et long occupent tous 4 octets, double occupe 8 octets, et tout type de pointeur occupe 4 octets Section

Apprentissage recommandé : Tutoriel vidéo Linux

.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn