Type de données C


En langage C, les types de données font référence à un système étendu de déclaration de variables ou de fonctions de différents types. Le type d'une variable détermine l'espace occupé par le stockage de la variable et la manière dont le modèle binaire stocké est interprété.

Les types en C peuvent être divisés dans les catégories suivantes :

序号类型与描述
1基本类型:
它们是算术类型,包括两种类型:整数类型和浮点类型。
2枚举类型:
它们也是算术类型,被用来定义在程序中只能赋予其一定的离散整数值的变量。
3void 类型:
类型说明符 void 表明没有可用的值。
4派生类型:
它们包括:指针类型、数组类型、结构类型、共用体类型和函数类型。

Les types de tableaux et les types de structure sont collectivement appelés types d'agrégats. Le type d'une fonction fait référence au type de la valeur de retour de la fonction. Dans le reste de ce chapitre, nous présenterons les types de base, et plusieurs autres types seront expliqués dans les chapitres suivants.

Types entiers

Le tableau suivant répertorie les détails sur la taille de stockage et la plage de valeurs des types entiers standard :

类型存储大小值范围
char1 字节-128 到 127 或 0 到 255
unsigned char1 字节0 到 255
signed char1 字节-128 到 127
int2 或 4 字节-32,768 到 32,767 或 -2,147,483,648 到 2,147,483,647
unsigned int2 或 4 字节0 到 65,535 或 0 到 4,294,967,295
short2 字节-32,768 到 32,767
unsigned short2 字节0 到 65,535
long4 字节-2,147,483,648 到 2,147,483,647
unsigned long4 字节0 到 4,294,967,295

Notez que les tailles de stockage des différents types sont liées au nombre de bits système, mais actuellement les plus courantes sont les systèmes 64 bits.

Ce qui suit répertorie les différences de taille de stockage entre les systèmes 32 bits et les systèmes 64 bits (les fenêtres sont les mêmes) :

Dans Afin d'obtenir un certain type ou la taille exacte d'une variable sur une plateforme spécifique, vous pouvez utiliser l'opérateur sizeof. L'expression sizeof(type) obtient la taille de stockage en octets d'un objet ou d'un type. L'exemple suivant montre l'obtention de la taille du type int :

#include <stdio.h>#include <limits.h>int main(){
   printf("int 存储大小 : %lu \n", sizeof(int));   
   return 0;}

Lorsque vous compilez et exécutez le programme ci-dessus sous Linux, il produira les résultats suivants :

int 存储大小 : 4

Type à virgule flottante

Le tableau suivant répertorie les détails sur la taille de stockage, la plage de valeurs et la précision des types à virgule flottante standard :

类型存储大小值范围精度
float4 字节1.2E-38 到 3.4E+386 位小数
double8 字节2.3E-308 到 1.7E+30815 位小数
long double16 字节3.4E-4932 到 1.1E+493219 位小数

Le fichier d'en-tête float.h définit des macros qui peuvent être utilisées dans les programmes pour utiliser ces valeurs. ​​et Détails supplémentaires sur la représentation binaire des nombres réels. L'exemple suivant affichera l'espace de stockage occupé par le type à virgule flottante et sa valeur de plage :

#include <stdio.h>#include <float.h>int main(){
   printf("float 存储最大字节数 : %lu \n", sizeof(float));
   printf("float 最小值: %E\n", FLT_MIN );
   printf("float 最大值: %E\n", FLT_MAX );
   printf("精度值: %d\n", FLT_DIG );   
   return 0;}

Lorsque vous compilez et exécutez le programme ci-dessus sous Linux, il produira les résultats suivants :

float 存储最大字节数 : 4 float 最小值: 1.175494E-38float 最大值: 3.402823E+38精度值: 6

void type

Le type void spécifie qu'aucune valeur n'est disponible. Il est généralement utilisé dans les trois situations suivantes :

Numéro de sérieType et description
1
序号类型与描述
1函数返回为空
C 中有各种函数都不返回值,或者您可以说它们返回空。不返回值的函数的返回类型为空。例如 void exit (int status);
2函数参数为空
C 中有各种函数不接受任何参数。不带参数的函数可以接受一个 void。例如 int rand(void);
3指针指向 void
类型为 void * 的指针代表对象的地址,而不是类型。例如,内存分配函数 void *malloc( size_t size ); 返回指向 void 的指针,可以转换为任何数据类型。
La fonction renvoie null


Il existe diverses fonctions en C qui ne renvoient pas de valeur, ou vous pouvez dire ils renvoient null. Le type de retour d'une fonction qui ne renvoie pas de valeur est null. Par exemple

void exit (int status);
2<🎜>Le paramètre de fonction est vide<🎜>
Il existe diverses fonctions en C qui n'acceptent aucun paramètre. Les fonctions sans paramètres peuvent accepter un vide. Par exemple, <🎜>int rand(void);<🎜>
3<🎜>Le pointeur pointe vers void<🎜>
type est Un pointeur vers void * représente l'adresse de l'objet, pas le type. Par exemple, la fonction d'allocation de mémoire <🎜>void *malloc( size_t size );<🎜> renvoie un pointeur vers void qui peut être converti en n'importe quel type de données.
<🎜>Si vous n'arrivez toujours pas à comprendre complètement le type de vide maintenant, ne vous inquiétez pas trop, nous expliquerons ces concepts en détail dans les chapitres suivants. <🎜><🎜>