Est-ce que les directives de préprocesseur peuvent être nestedes en C ++?

J’ai une question sur les directives pré-processeur en c ++:

Par exemple:

#ifndef QUESTION //some code here #ifndef QUESTION //some code here #endif #endif 

Pouvons-nous l’utiliser de cette manière, et le compilateur C ++ peut-il correspondre à ifndef et endif de la bonne manière?

Oui nous pouvons. L’instruction #endif correspond à la précédente #if #ifdef ou #ifndef etc. pour laquelle il n’y a pas eu de #endif correspondant.

par exemple

 #if ----------| #if -----| | #endif ---| | #endif --------| 

Oui, vous pouvez imbriquer des blocs #if / #endif . Certains styles de codage C vous diraient d’écrire

 #ifdef CONDITION1 # ifdef CONDITION2 # endif #endif 

utiliser des espaces pour indiquer le niveau d’imbrication.

Dans votre code, la section QUESTION de #ifndef sera rejetée à moins que vous ne soyez ununf QUESTION.

Bonne chance!