SAlut,
Je developpe depuis de nombreuses annees en C (systeme et haut niveau) donc je commence a connaitre le langage mais je viens de tomber sur un bout de code qui me laisse perplexe :
Code :
- #define min(a,b) ((a)<(b) ? (a):(b))
- #define max(a,b) ((a)>(b) ? (a):(b))
- #define Inf 1.0/0.0
- #define NaN 0.0/0.0
|
Les 2 dernieres lignes , je comprends pas comment ca peut marcher ... et pourtant sous linux , ca marche (sous windows il refuse a cause de la division par 0)
Code :
- if (!strcmp(ch,"Inf" )){
- x=Inf;
- }
|
L affectation dans x se passe bien, et la comparaison avec Inf dans la suite du code fonctionne aussi.
Comment ca peut etre possible, je pensais que les notions d infini n existait pas sur un ordi.
Merci d avance.