J'ai regardé les Boost et j'ai remarqué qu'il y a souvent des signes dièses simples sans aucune directive de préprocesseur. J'ai lu le manuel et le guide de spécification du préprocesseur de GCC et je n'ai rien trouvé à ce sujet.
(1) #ifndef BOOST_CONFIG_HPP
(2) # include <boost/config.hpp>
(3) #endif
(4) #
(5) #if defined(BOOST_HAS_PRAGMA_ONCE)
(6) # pragma once
(7) #endif
À la ligne 4, il n'y a rien après le signe dièse. Quel effet cela a-t-il ? Est-il défini dans la spécification du préprocesseur C (CPP) ?
Comme Boost est une bibliothèque multiplateforme, je suppose que tout CPP devrait l'analyser correctement. Quel serait l'effet/les effets secondaires d'avoir des signes dièse/hache aléatoires dans le code ?
1 votes
Juste par curiosité : CPP est-il une abréviation valide pour le préprocesseur C ? J'ai été assez confus en lisant l'OP.
6 votes
@Zaibis Par exemple, le nom exécutable du préprocesseur dans la suite GCC est "cpp" (alors que les compilateurs sont gcc et g++).
4 votes
CPP est l'abréviation de C-Plus-Plus.
7 votes
Pas entièrement. Voir la première phrase de fr.wikipedia.org/wiki/C_preprocesseur
7 votes
@djeidot "cpp" est ambigu. C'est pourquoi les gens utilisent "c++", ou "cxx" (x ressemble à + tourné à 45 degrés) lorsqu'ils font référence à C-Plus-Plus.
12 votes
@djeidot Non, CPP est le C-PreProcessor. Il existait bien avant que le C++ n'existe.
3 votes
@djeidot, avec
Makefile
s et autotools,CPPFLAGS
fait référence au préprocesseur.2 votes
Voir aussi stackoverflow.com/q/45629176/1967396