Pragma pour ignorer une fonction - C++ - Programmation
Marsh Posté le 04-07-2008 à 13:22:49
Je crains que tu ne croies au père noël. Mais je peux me tromper
Marsh Posté le 04-07-2008 à 13:24:16
À part avec des #define + #ifdef / #ifndef, je ne vois pas comment faire ça.
Mais avant tout, je m'interroge sur ton architecture : pourquoi diable aurais-tu besoin de faire une chose pareille ?
Marsh Posté le 04-07-2008 à 13:30:11
c'est une longue histoire ^^
en fait il me faudrait juste une instruction pour activer/desactiver la prise en compte d'une fonction. si ça existe, ça règlera mon problème
Marsh Posté le 04-07-2008 à 13:35:44
fichier main_header.h :
#include header1.h
#include header2.h
#include header3.h
#include header4.h
#include header5.h
Et je voudrai faire en sorte qu'il ne prenne pas en compte les instruction printf dans le header3.h
Marsh Posté le 04-07-2008 à 13:37:44
Je crois, sans toutefois en être tout à fair sûr, que j'ai un début de commencement d'une vague compréhension.
Dans le header3.h t'as des fonctions qui font des printf(). Qui sont utilisées ailleurs. Et là tu voudrais utiliser ces fonctions, mais sans les printf().
J'ai bon ?
(au passage : pourquoi des printf(), on n'est pas dans la sous-cat C++ )
Marsh Posté le 04-07-2008 à 13:40:49
Oui voilà, c'est exactement ça, désolé de ne pas avoir été plus clair .
Pourquoi printf() ? des mauvaises habitudes du C lol, mais je veux bel et bien appliquer ce type de restriction à des classes et template.
Marsh Posté le 04-07-2008 à 13:46:24
Vel-Ryphon a écrit : Oui voilà, c'est exactement ça |
Donc non, ce n'est pas possible à moins de changer toutes les fonctions définies dans header3.h pour faire, par exemple, ceci sur chaque printf :
#ifndef NO_PRINTF
printf(...
#endif
Et quand tu ne veux pas que les printf() soient utilisées, tu compiles avec -D NO_PRINTF (à vérifier selon le compilateur que tu utilises) ou bien tu écris ça dans ton code source à l'endroit que tu jugeras opportun : #define NO_PRINTF
Vel-Ryphon a écrit : Pourquoi printf() ? des mauvaises habitudes du C lol |
lol indeed
Marsh Posté le 04-07-2008 à 14:01:03
Ok, merci !
La solution est à la hauteur du besoin : pas vraiment élégant ^^
Marsh Posté le 04-07-2008 à 14:48:22
Ou, au pire de chez pire:
Code :
|
Ca remplacera tous les printf par rien.
Marsh Posté le 04-07-2008 à 14:52:05
Je n'avais pas pensé à cette solution. Mais effectivement, c'est pire encore.
M'enfin je pense qu'on n'est plus à ça près.
Marsh Posté le 04-07-2008 à 14:57:42
pas de printf dans des fonction inline, puisque pas de fonction inline impactées.
Marsh Posté le 04-07-2008 à 15:16:25
je n'ai pas de fichiers .cpp, mes classes et leurs sources sont codés dans le .h, donc les printfs disséminé dans les fonctions se trouvent dans le .h.
Marsh Posté le 04-07-2008 à 15:22:19
Vel-Ryphon a écrit : je n'ai pas de fichiers .cpp, mes classes et leurs sources sont codés dans le .h, donc les printfs disséminé dans les fonctions se trouvent dans le .h. |
Marsh Posté le 04-07-2008 à 13:04:14
Salut,
Je cherche à paramétrer la prise en compte, ou non, par le compilateur, d'une fonction spécifique.
Par exemple, je voudrais lui dire de ne pas prendre en compte les instructions printf.
Est-ce possible, par exemple avec un pragma, ou autre ?
Si cela est possible, je voudrais même aller plus loin : dans un header .h, dans lequel je définierais donc les fonctions à ignorer, je voudrais carrément paramétrer dans quelque header il doit appliquer l'ignorance de la dite instruction.
Par exemple, je voudrais paramétrer dans un meme fichier ini.h (par exemple), les règles suivantes :
si header=classe1.h, ignorer fonction printf
si header=classe3.h, ignorer fonction printf
Merci de votre aide^^
Message édité par Elmoricq le 04-07-2008 à 13:22:59
---------------
http://www.ryphon-mechanics.com