#pragma option
Remonter à Présentation des directives pragma - Index
Sommaire
Syntaxe (Voir Pseudo-grammaire)
#pragma option OPT [ OPT ... ] #pragma option push OPT [ OPT ... ] #pragma option pop #pragma nopushoptwarn
Description
Utilisez #pragma option
pour inclure des options de la ligne de commande dans le code de votre programme. #pragma option
peut aussi être utilisée avec les arguments push ou pop.
#pragma option OPT [ OPT ... ]
OPT
sont les options de la ligne de commande (à l'exception de celles énumérées ci-dessous). Une directive peut contenir un nombre quelconque d'options. Les deux exemples suivants sont corrects :
#pragma option -C #pragma option -C -A
Les options qui fonctionnent en bascule (par exemple -a ou -K) peuvent être activées et désactivées exactement comme au niveau de la ligne de commande. Elles peuvent en outre apparaître suivies d'un point afin de restaurer l'option dans l'état qu'elle avait dans la ligne de commande, dans le fichier de configuration ou dans l'option de menu. Cela permet de modifier temporairement une option et revenir ensuite à sa valeur par défaut sans que vous ayez à vous rappeler (ni même à connaître) celle-ci.
Les options suivantes ne peuvent pas apparaître dans pragma option
:
B |
c |
dnom |
Dnom=chaîne |
enomfichier |
E |
Fx |
h |
Inomfichier |
lexset |
M |
o |
P |
Q |
S |
T |
Unom |
V |
X |
Y |
Les instructions #pragma
s, #include
s, #define
, et certaines instructions #if
, peuvent être utilisées dans les cas suivants :
- Avant l'utilisation d'un nom de macro commençant par deux caractères de soulignement (éventuellement une macro intégrée) dans une directive
#if
,#ifdef
,#ifndef
ou#elif
. - Avant l'occurrence du premier élément réel du langage (la première déclaration C ou C++).
Certaines options de ligne de commande ne peuvent apparaître que dans une commande #pragma option
précédant ces événements. Ces options sont :
Enomfichier |
f |
i# |
m* |
nchemin |
onomfichier |
U |
W |
z |
Les autres options peuvent être modifiées n'importe où. Les options suivantes ne vont affecter le compilateur que si elles sont modifiées entre les déclarations de fonctions ou d'objets :
1 |
h |
r |
2 |
k |
rd |
A |
N |
v |
Ff |
O |
y |
G |
p |
Z |
Les options suivantes sont modifiables à tout moment et prennent effet immédiatement :
A |
gn |
zE |
b |
jn |
zF |
C |
K |
zH |
d |
wxxx |
Les options peuvent être suivies d'un point (.) pour restaurer l'état de la ligne de commande.
#pragma option push OPT [ OPT ... ]
et #pragma option pop
La directive #pragma option
peut aussi être utilisée avec les arguments push et pop pour faciliter la modification des directives de compilation.
Vous pouvez utiliser #pragma option push
pour enregistrer la totalité ou un ensemble spécifié d'options avant d'inclure des fichiers pouvant modifier de nombreux avertissements et options de compilation, puis, avec la seule instruction #pragma option pop
, revenir à l'état précédent. Par exemple :
#pragma option push #include <theworld.h> #pragma option pop #include "mystuff.h"
La directive #pragma option push
place dans un premier temps toutes les options de compilation et les paramètres d'avertissement sur une pile puis traite les options (éventuellement fournies). Les exemples suivants illustrent l'utilisation de #pragma option push
avec ou sans options :
#pragma option push -C -A #pragma option push
La directive #pragma option pop
modifie les avertissements et les options de compilation en retirant de la pile le dernier ensemble d'options et d'avertissements. Cela génère un avertissement, "Pragma option pop sans option push correspondante" si la pile est vide, auquel cas rien ne se produit.
Le texte suivant génère un avertissement signalant une pile vide :
#pragma option push #pragma option pop #pragma option pop /* Avertissement */
Bien que cela ne soit pas recommandé, vous pouvez désactiver cet avertissement avec la directive : #pragma warn -nop
.
Si vous tentez de spécifier des options après pop, vous obtenez le message d'erreur "Rien d'autorisé après pragma option pop". Par exemple, le texte suivant génère un message d'erreur :
#pragma option pop -C/* ERREUR */
Si votre pile d'options poussées n'est pas la même au début et à la fin d'un fichier, vous obtenez l'avertissement : "Options et avertissements précédents non restaurés". Pour désactiver cet avertissement, utilisez la directive #pragma nopushoptwarn
.