De quoi parle ce #ifdef __GNUC__?
J'ai trouvé ces lignes dans le libmagic
code, (sourceforge.net/projects/libmagic/files/latest/download). Que signifient-ils? Quel est l'équivalent python?
#ifdef __GNUC__
__attribute__((unused))
#endif
Ce n' __GNUC__
veux dire?
il semble donc à vérifier si le compilateur GCC est installé, Ce qui signifie __CC_BRAS, __ICCARM__, __GNUC__, __MULTITÂCHE__
Qu'est-ce que __attribute__((unused))
?
Il y a un extrait de code ici, mais aucune explication n': Comment puis-je mieux le silence d'un avertissement sur les variables?
Quelle est la différence entre __GNUC__
et _MSC_VER
Il y a quelques explications sur _MSC_VER
mais qu'est-ce que c'est? Comment Détecter si je suis Compiler le Code Avec Visual Studio 2008?
Enfin la question: comment puis-je faire la même #ifdef
pour vérifier si l'OS est en train de compiler mon code python à l'aide de GNU et de la MS visual studios?
source d'informationauteur alvas
Vous devez vous connecter pour publier un commentaire.
Il est courant dans les compilateurs de définir des macros pour déterminer quel compilateur ils sont, quelle version est que, ... un portable de code C++ pouvez utiliser pour savoir qu'il peut utiliser une fonction spécifique, ou pas.
Il indique que je suis un compilateur GNU et vous pouvez utiliser GNU extensions. [1]
Cet attribut, attaché à une variable, signifie que la variable est destinée à être éventuellement utilisés. GCC ne produira pas un solde non utilisé de la variable d'alerte pour cette variable. [2]
Ils sont deux indépendants des macros. D'abord on dit que je suis un compilateur GNU et le second indique le numéro de version de MS compilateurs. Cependant, MME les compilateurs ne sont pas censés soutenir GNU extensions.
Différents compilateurs soutien des caractéristiques différentes, parfois de manière différente. Vous êtes à la recherche d'une série de
#ifdef
blocs pour activer la prise en charge selon ce compilateur est la construction de la code; par exemple le compilateur GNU serait automatiquement définir__GNUC__
.__CC_ARM
__ICCARM__
__GNUC__
__TASKING__
sont tous définis par certains compilateurs le projet a été porté sur et qui l'intéresse.La
__attribute__((unused))
entrée est une distribution GNU-indicateur spécifique (bien que d'autres compilateurs peuvent supporter maintenant trop) à l'état que le symbole qu'il est attaché à peut être utilisé et donc le compilateur doit vous avertir à propos de cette condition.Comment utiliser ces ifdefs pour déterminer quel compilateur est la construction de votre code -- le faire de la même manière que vous êtes en train de lire dans un autre projet pour la construction de C. ce ne sont pas des facteurs de votre code python.