48 votes

Type de variables #define

Si je l'ai fait :

#define MAXLINE    5000

Quel est le type de MAXLINE ? Dois-je supposer qu'il s'agit d'un int ? Puis-je le tester d'une manière ou d'une autre ?

En général, comment peut-on déterminer le type de #define ed variable ?

1voto

shinkou Points 3392

Nous appelons cette macro ou préprocesseur, qui est utilisée pour remplacer les chaînes de caractères du contenu du fichier source. Lisez ceci : https://en.wikipedia.org/wiki/C_macro

1voto

Edgar Bonet Points 1425

Oui, vous pouvez supposer que c'est un int .

En fait, toutes les autres réponses sont correctes. Ce n'est pas C, c'est juste une directive qui dit au préprocesseur de faire des substitutions textuelles substitutions textuelles, et en tant que telle, elle n'a pas de type. Cependant, si vous ne faites pas de choses funky avec lui (comme l'astuce ## du préprocesseur), vous allez généralement utiliser MAXLINE comme une sorte de constante, et le préprocesseur le remplacera par 5000 qui est en effet une constante explicite. Et les constantes ont un type : 5000 est un int . Une constante écrite sous la forme d'un décimal, sans suffixe (comme U ou L), sera interprétée par le compilateur comme un le compilateur comme un int , long int o unsigned long int : le premier de ces types qui convient.

Mais cela n'a bien sûr rien à voir avec le préprocesseur. Vous pourriez réécrire votre question sous la forme "quel est le type de 5000 ?", sans #define .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X