Maison >développement back-end >C++ >Directives de prétraitement C/C++

Directives de prétraitement C/C++

王林
王林avant
2023-09-08 16:01:021193parcourir

C/C++ 预处理指令

En C ou C++ on trouve différentes lignes commençant par le symbole (#). C'est ce qu'on appelle des directives de prétraitement. Ces lignes sont traitées lors de l'étape de prétraitement avant la compilation du code. Ici, nous verrons trois types différents de directives de prétraitement. Il s'agit de -

  • Compilation conditionnelle
  • Contrôle de ligne
  • Directive d'erreur

Parfois, nous définissons certaines macros dans notre programme. Utilisez des directives de compilation conditionnelle. Nous pouvons vérifier si la macro est définie. Nous pouvons également les contrôler. Ainsi, si une macro est définie, certaines tâches sont exécutées, sinon d'autres tâches similaires sont exécutées.

Les directives de compilation conditionnelle sont similaires à #ifdef-#elif-#else-#endif. Chaque bloc #ifdef doit se terminer par un #endif. #elif ou #else sont facultatifs.

Exemple

#include <iostream>
#define MY_MACRO 10
using namespace std;
int main() {
   #ifdef MACRO
   cout << "MACRO is defined" << endl;
   #elif MY_MACRO
   cout << "MY_MACRO is defined, value is: " << MY_MACRO;
   #endif
}

Sortie

MY_MACRO is defined, value is: 10

Utilisez les directives de contrôle de ligne en tapant #line. Parfois, nous obtenons des erreurs concernant les numéros de ligne préférés. Nous pouvons utiliser cette commande pour mettre à jour le numéro de ligne. Si nous le plaçons et modifions la ligne actuelle à 200, les lignes suivantes passeront de 201. La directive

Exemple

#include <iostream>
using namespace std;
int main() {
   cout<< "Current line is: " << __LINE__ << endl;
   #line 200
   cout << "Hello" << endl;
   cout << "World" << endl;
   cout<< "Current line is: " << __LINE__ << endl;
}

Output

Current line is: 5
Hello
World
Current line is: 202

error est utilisée pour afficher les erreurs avant la compilation. On suppose qu'une macro doit être définie, mais si elle n'est pas définie, un message d'erreur peut s'afficher. Ceci peut être réalisé en utilisant #error.

Exemple

#include <iostream>
using namespace std;
int main() {
   #ifdef MY_MACRO
   cout << "MY_MACRO is defined, value is: " << MY_MACRO;
   #else
   #error MY_MACRO should be defined
   #endif
}

Sortie

#error MY_MACRO should be defined

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer