Aller à la documentation de ce fichier.
20 # ifndef __UTILITES_H__
21 # define __UTILITES_H__
30 #error _IN already defined
35 #error _OUT already defined
40 #error _INOUT already defined
45 #error _UNUSED already defined
60 fprintf(stderr, "%s [%d] : " , __FILE__ , __LINE__ ) ;\
73 # ifdef INFOS_COMPILATION
74 # error INFOS_COMPILATION already defined
76 # define INFOS_COMPILATION {\
78 fprintf(stdout, "%s [%d] : " , __FILE__ , __LINE__ ) ;\
79 fprintf(stdout,"Compilation le %s" , __DATE__);\
80 fprintf(stdout," a %s" , __TIME__ );\
81 fprintf(stdout,"\n\n\n" );\
95 # error ATTENTE already defined
97 # define ATTENTE(secondes) {\
99 fprintf( stderr, "ATTENTE de %d secondes" , secondes);\
102 fprintf( stderr, "\n" );\
115 # error EXECUTION already defined
118 # error INTERRUPTION already defined
121 # error ISCRUTE already defined
124 # error RSCRUTE already defined
127 # error SSCRUTE already defined
130 # error CSCRUTE already defined
133 # error XSCRUTE already defined
136 # error MESSAGE already defined
142 # define IFORMAT_int "%d"
143 # define IFORMAT_long "%ld"
144 # define IFORMAT_llong "%lld"
145 # define IFORMAT IFORMAT_int
150 # define MED_IFORMAT_int "d"
151 # define MED_IFORMAT_long "ld"
152 # define MED_IFORMAT_llong "lld"
153 # define MED_IFORMAT MED_IFORMAT_int
159 #define MED_EXP2_(msg1,msg2) msg1 msg2
160 #define MED_ERR_(rt,r1,r2,r3) { rt = r1 r2; MESSAGE(MED_EXP2_(r1 ## _MSG,r2 ## _MSG)); MESSAGE(r3); }
163 #if ! defined(MESGERR)
164 #error "Explicit error messages must be either activated or deactivated, hence MESGERR macro must be defined."
165 #error "Verify that you include med_utils.h after med_config.h, thanks."
168 # if MESGERR == 1 || defined(MED_MESGERR_FOR_TOOLS)
173 # define EXECUTION(instruction) {\
175 fprintf( stderr,"INSTRUCTION %s" , #instruction ) ;\
179 fprintf( stderr," FRANCHIE\n" ) ;\
192 # define INTERRUPTION(code) {\
194 fprintf( stderr," INTERRUPTION code = %d",code) ;\
195 fprintf(stderr,"\n") ;\
209 # define ASSERT(condition) if( !(condition) ){\
211 fprintf(stderr,"condition %s VIOLEE\n",#condition);\
219 # ifndef NOFINALBLANK
220 # define NOFINALBLANK(chaine,label) if (chaine) if (strlen(chaine)) if( ( chaine[strlen(chaine)-1] == ' ' ) ){ \
222 fprintf(stderr,"La chaine |%s| ne doit pas finir par un caract貥 blanc.\n",chaine);\
234 # define ISCRUTE(entier) ISCRUTE_int(entier)
236 # define ISCRUTE_int(entier) {\
238 fprintf(stderr,"%s = %d\n",#entier,(int) entier) ; \
241 # define ISCRUTE_int8(entier) {\
243 fprintf(stderr,"%s = %hd\n",#entier,entier) ;\
246 # define ISCRUTE_long(entier) {\
248 fprintf(stderr,"%s = %ld\n",#entier,(long) entier) ; \
251 # define ISCRUTE_llong(entier) {\
253 fprintf(stderr,"%s = %lld\n",#entier,(long long) entier) ; \
256 # define ISCRUTE_size(entier) {\
258 fprintf(stderr,"%s = %llu\n",#entier,entier) ;\
261 # define ISCRUTE_id(entier) ISCRUTE_long(entier)
262 # define RSCRUTE(reel) {\
264 fprintf(stderr,"%s = %f\n",#reel,reel) ;\
267 # define XSCRUTE(pointeur) {\
269 fprintf(stderr,"%s = %p\n",#pointeur,pointeur) ;\
272 # define CSCRUTE(car) {\
274 fprintf(stderr,"%s = %c\n",#car,car) ;\
277 # define SSCRUTE(chaine) {\
279 fprintf(stderr,"%s = \"%s\"\n",#chaine,chaine) ;\
282 # define MESSAGE(chaine) {\
284 fprintf(stderr,"%s\n",chaine) ;\
289 fprintf( stderr , "} FIN %s\n\n\n" , nom ) ;\
292 # define DEBUT(nom) {\
293 fprintf( stderr , "\n\n\n") ;\
295 fprintf( stderr , "{ DEBUT %s\n" , nom ) ;\
304 # define EXECUTION(instruction) instruction
305 # define INTERRUPTION(code)
308 # define ASSERT(condition)
311 # define NOFINALBLANK(chaine,label)
313 # define ISCRUTE(entier)
314 # define ISCRUTE_int(entier)
315 # define ISCRUTE_int8(entier)
316 # define ISCRUTE_long(entier)
317 # define ISCRUTE_llong(entier)
318 # define ISCRUTE_size(entier)
319 # define ISCRUTE_id(entier)
320 # define XSCRUTE(pointeur)
321 # define RSCRUTE(reel)
322 # define CSCRUTE(car)
323 # define SSCRUTE(chaine)
324 # define MESSAGE(chaine)
334 # ifdef WITH_EXCEPTIONS
336 # define EXIT_IF(expression,message,arg) {\
337 if ( ( expression ) != 0) \
338 throw MEDerreur(__FILE__,__LINE__,message,arg); }
340 # error Impossible d'activer l'option WITH_EXCEPTIONS avec un compilateur C
343 # define EXIT_IF(expression,message,arg) { exit_if(__FILE__,__LINE__,expression,message,arg); }
347 # ifdef WITH_EXCEPTIONS
349 # define MED_ERR_EXIT_IF(expression,r1,r2,arg) {\
350 if ( ( expression ) != 0) \
351 throw MEDerreur(__FILE__,__LINE__,MED_EXP2_(r1 ## _MSG,r2 ## _MSG),arg); }
353 # error Impossible d'activer l'option WITH_EXCEPTIONS avec un compilateur C
356 # define MED_ERR_EXIT_IF(expression,r1,r2,arg) { exit_if(__FILE__,__LINE__,expression,MED_EXP2_(r1 ## _MSG,r2 ## _MSG),arg); }