Vous pouvez peut-être rencontrer une erreur pointant vers la directive d’erreur du préprocesseur g. Il s’avère qu’il existe plusieurs façons de résoudre ce problème, donc la plupart d’entre nous les examinent maintenant.
Approuvé : Fortect
- Lu 2 fois
La directive #error imprime un énorme message d’erreur personnalisé au moment de la compilation et termine donc notre compilation.
Syntaxe
Quels sont les bons directives du préprocesseur sur C ?
# Chaîne de jeton d’erreur
Le message d’erreur envoyé par cette directive contient un joli paramètre de chaîne de jeton. Le paramètre de chaîne de jeton en termes simples ne peut pas subir d’expansion de macro. Directive Ceci est en fait utile pendant le prétraitement pour notifier le développeur d’une incohérence du programme ou d’une violation de contrainte. L’exemple suivant montre la gestion des erreurs de prétraitement :
Approuvé : Fortect
Fortect est l'outil de réparation de PC le plus populaire et le plus efficace au monde. Des millions de personnes lui font confiance pour assurer le fonctionnement rapide, fluide et sans erreur de leurs systèmes. Avec son interface utilisateur simple et son puissant moteur d'analyse, Fortect détecte et corrige rapidement un large éventail de problèmes Windows, de l'instabilité du système et des problèmes de sécurité à la gestion de la mémoire et aux goulots d'étranglement des performances.
numéro si en cours ! défini (__ cplusplus)#error Nécessite un compilateur C++.#fin si
Voir aussi
1 Diagnostic
Les informations “ #error ” amènent le préprocesseur à signaler une erreur de terminal.La culpabilité. Jetons qui composent le reste dans la chaîne “ #error “sont utilisés ci-dessous exactement comme le message d’erreur correspondant.
Vous devez utiliser “ #error ” dans la condition trouvéeCombinaison de paramètres Vous êtes certain que le programme ne suit pasSoutien. Par exemple, chaque fois que vous savez qu’un programme ne fait pas naturellementcorrectement sur un VAX approprié, vous devriez être capable d’écrire
Si vous avez suffisamment de paramètres de configuration, faites-le dans l’ordre. besoin de peaufinerinstallation séquentielle, vous pouvez utiliser les termes et conditions pour détecterincohérence et signalez-la avec “ #error “. Exemple,
Qu’est-ce qu’une erreur de préprocesseur en C ?
La directive “ #warning ” est similaire à ce que vous voyez, la “ #error “, mais elle appelleUn préprocesseur pour créer l’index et poursuivre le prétraitement. Jetons “ #warning “Ce qui suit est presque toujours implémenté comme un message d’avertissement.
Vous pouvez commencer avec “ #warning ” dans les fichiers d’en-tête de message hérités.Redirigez généralement l’utilisateur vers le fichier de balise h2 qui doit être utilisé à la place.
Non #error ‘aucun pointant vers les macros n’étend #warning ‘ l’argument.Des échantillons de l’espace intérieur ont été réapprovisionnés par un seul espace.La chaîne doit être complétée par des marqueurs. C’est plus intelligent queLe discours de ces directives est une version constante de chaîne à une heure ; qui éviteProblèmes avec les apostrophes comment.
Qu’est-ce que l’instruction #error
en C ? Qu’est-ce que l’avantage a à faire en le contenant ?
5624
posé le 16 mars 2011 à 5h59
La directive d’erreur du préprocesseur fait que le préprocesseur génère un message d’erreur merveilleux et ne peut pas le compiler. À l’occasion, les instructions #error dans le fichier source peuvent dissuader les spécialistes du marketing de générer si une section d’un bon didacticiel a été atteinte et devrait très probablement être ignorée.
< /p>
1 679 44 badges dorés 2323 badges composants
N’est-ce pas la méthode que vous recherchez ? Consultez les autres questions appelées C C-préprocesseur ou posez votre dernière question.
Il s’agit d’une directive préprocesseur considérable qui est utilisée (par exemple) jusqu’à présent en attendant qu’une des nombreuses correspondances futures -D
soit définie, mais beaucoup non.
#si défini (BUILD_TYPE_NORMAL)# DEBUG (x) définit faire ; sans oublier (0) / * trois codes paranoïaques * /#elif défini (BUILD_TYPE_DEBUG)# DEBUG (x) créer _debug_trace x / * ex. DEBUG ((_ arguments debug_trace)) * /#un autre# erreur "Veuillez entrer le type d'établissement dans Makefile"#fin si
Si actuellement le préprocesseur vous rencontre, les informations #error
signaleront la série comme un message d’erreur que vous obtiendrez et terminera la compilation ; La forme exacte du message d’erreur particulier dépend du compilateur.
Réponse 16, 11 mars @ 6h09
La directive ‘#error’ provoque une erreur sérieuse du vrai préprocesseur. Le message d’erreur est la douche nuptiale principale, qui est le reste d’une nouvelle ligne qui utilise ‘#error’. Vous ne pouvez pas utiliser #warning ‘sur les fichiers d’en-tête hérités suivi d’un signal dirigeant l’utilisateur vers un en-tête spécifique complet à inclure à la place.
< /p>
54,3 mille
#si nommé USING_SQLITE && définit USING_MYSQL#error Vous ne pouvez pas vraiment utiliser SQLite et MySQL en ce moment#fin si#si! (définit USING_SQLITE && définit USING_MYSQL)#error Vous auriez besoin d'utiliser sqlite ou mysql#fin si#ifdef USING_SQLITE// ...#fin si#ifdef USING_MYSQL// ...#fin si
a répondu le 16 mars ’11 à 6h15
Si le compilateur compile régulièrement cette ligne, cela renvoie une erreur fatale du compilateur : et empêche également ce programme de continuer à compiler :
#include #ifndef __MATH_H#error d'abord inclure puis compiler#un autreprincipe int () allez a, b est égal à 25; a = carré (b); printf ("% f", a); Renvoie 0 ;#fin siSortie : erreur du compilateur -> Directive d'erreur : activez d'abord, puis compilez
répondu le 14 janvier à 8h18
La description. Dans le langage de programmation C, la nouvelle directive fessée #error provoque l’arrêt du prétraitement à certains de nos points où la directive est rencontrée. Les informations peuvent être décrites comme imprimées après la directive #error indiquant que ce message sera généré avant l’arrêt du prétraitement.
5.728
Accélérez les performances de votre ordinateur dès maintenant avec ce simple téléchargement.Qu’est-ce que la directive de prétraitement en C ?