OVH Cloud OVH Cloud

[URGENT]Désactiver l'optimisation dans VC++

7 réponses
Avatar
Sivaller
J 'ai compiler mon projet en mode release avec
optimisation "maximum speed"
cependant je désirerai désactiver par endroit l'optimisation de code et
surtout sur les appels de routines (fonctions);
comment faire ? quelle directive sont à employer ?
L'optimisation ne marche pas pour les fonction surcharger par pointer,pour
cela je le désactive à cet endroit là.

Merci BCP ;

7 réponses

Avatar
Pierre Maurette
J 'ai compiler mon projet en mode release avec
optimisation "maximum speed"
cependant je désirerai désactiver par endroit l'optimisation de code et
surtout sur les appels de routines (fonctions);
comment faire ? quelle directive sont à employer ?
L'optimisation ne marche pas pour les fonction surcharger par pointer,pour
cela je le désactive à cet endroit là.
Je ne comprends pas tout. Quand je ne veux pas que certains trucs soient

trop "optimisés", c'est à dire zappés, j'use et abuse du modificateur
"volatile".
--
Pierre

Avatar
Sivaller
Oui , certains endroit de mon code source qui ne doit pas être optimisés.
Je vais regarder à quoi sert volatile au juste ?
;


"Pierre Maurette" a écrit dans le message de
news:
J 'ai compiler mon projet en mode release avec
optimisation "maximum speed"
cependant je désirerai désactiver par endroit l'optimisation de code et
surtout sur les appels de routines (fonctions);
comment faire ? quelle directive sont à employer ?
L'optimisation ne marche pas pour les fonction surcharger par
pointer,pour


cela je le désactive à cet endroit là.
Je ne comprends pas tout. Quand je ne veux pas que certains trucs soient

trop "optimisés", c'est à dire zappés, j'use et abuse du modificateur
"volatile".
--
Pierre



Avatar
Falk Tannhäuser
Sivaller wrote:
J 'ai compiler mon projet en mode release avec
optimisation "maximum speed"
cependant je désirerai désactiver par endroit l'optimisation de code et
surtout sur les appels de routines (fonctions);


Pourquoi ?

comment faire ? quelle directive sont à employer ?
L'optimisation ne marche pas pour les fonction surcharger par pointer,pour
cela je le désactive à cet endroit là.


Qu'est-ce qui ne marche pas exactement ?

Falk

Avatar
Pierre Maurette
Oui , certains endroit de mon code source qui ne doit pas être optimisés.
Sous VC++, regardez peut-être du coté de:

#pragma function(....

Je vais regarder à quoi sert volatile au juste ?
Si vous avez ça:


int main(void)
{
int tab[100];
for(int i = 0; i < 100; ++i) tab[i] = 2*i;
std::cout << tab[65] << std::endl;
return 0;
}

le compilo peut générer le même code optimisé que si vous aviez:

int main(void)
{
std::cout << (int)130 << std::endl;
return 0;
}

Si vous déclarez:

int main(void)
{
volatile int tab[100];
for(int i = 0; i < 100; ++i) tab[i] = 2*i;
std::cout << tab[65] << std::endl;
return 0;
}

le compilateur va générer du code "au plus près" du code source. Ce
qu'en dit la norme peut provoquer d'nterminables discussions, mais c'est
en gros comme ça que le traite VC++ (7.1).

Avatar
Sivaller
C'est bon c'est résolu,
il me semble que le probléme provenait d'incompatibilité de convention
d'appel ;
Avatar
Pierre Maurette
C'est bon c'est résolu,
il me semble que le probléme provenait d'incompatibilité de convention
d'appel ;
Content pour vous. D'un autre coté, j'ai un peu l'impressin d'avoir

loupé la fin du film ;-)
--
Pierre

Avatar
Loïc Joly
Pierre Maurette wrote:

C'est bon c'est résolu,
il me semble que le probléme provenait d'incompatibilité de convention
d'appel ;


Content pour vous. D'un autre coté, j'ai un peu l'impressin d'avoir
loupé la fin du film ;-)


Le coupable, c'est le colonel Moutarde, dans la bibliothèque avec le
chandelier.

--
Loïc