Jar Jar a écrit a écrit :
Mais arrête ton char bordel, je n'ai pas le K&R sous la main, donc je ne vais pas te répondre à ce sujet.
Le fait est que dans la vraie vie, si tu fais un programme en C, il ne compilera jamais sous Visual C à moins d'en changer les 3/4.
Donc pour moi, le Visual C est différent du C. Le fait que tu penses autrement ne t'oblige pas à sortir des insultes, qui montrent bien que tu es à court d'arguments.
|
Je t'insulte parceque en tenant des propos comme tu le fais tu le mérite.
Visual C supporte parfaitement le langage C de la même manière que des dizaines d'autres compilateurs dont fait partie gcc.
les fonctions POSIX n'ont rien à voir avec le compilateur !
D'ailleurs Linux a failli ne jamais devenir compatible POSIX car Linux n'avait pas les moyens de s'acheter les livres qui détaillaient cette sépacification.
Et pour l'histoire de la vrai vie, c'est parceque tout simplement dans la vraie vie on programme que rarement en C pur.
Combien de fois compiles-tu ton programme avec -ansi -pedantic -ansi -Wall -Werror ect... sous gcc et sans utiliser de libs externes ?
Pratiquement jamais, mais si on jour tu le fait, et ben tu veras que ca compilera et ca marchera (pour peu que ton programme ne soit pas buggué, merci Electric Fence) sous Visual C.
Quant à ton affirmation :
Citation :
Oui, je fais ça très souvent. Sans le moindre problème, à part quelques trucs sous linux qui ne respectent pas POSIX (donc dans le sens Linux->Solaris, ça se passe très bien).
|
C'est faux, il y a pas mal de différences, en faite suffisamment pour que ca fasse régulièrement chier.
En ce moment je programmes sous SunOS 5.6 et sous Linux.
Et ben même le scanf() ne fonctionne pas de la même facon !
Oui tu as bien lu, une des fonctions les plus basiques du langage C ne fonctionne pas de la même façon entre 2 UNIX censés gérer POSIX. Moi je trouve ca édifiant.
Sous Linux le scanf() n'est pas bloquant lorsque l'on recoit un signal
en revanche il l'est sous Solaris et on est obligé de coder des trucs de ce genre sinon le scanf() ne se termine pas :
do {
ret = scanf("%s", data_to_send);
} while(ret == -1);
POSIX c'est un ensemble de fonctions qui a ces avantages et ces inconvénients comme des centaines d'autres lib.
Microsoft a décidé de ne pas implémenter POSIX mais de developper des fonctions équivalentes, c'est leur droit ils font ce
qu'ils veulent. POSIX ne fait pas partie du langage C.
gcc ne contient pas non plus ces fonctions, elles dépendent du système d'exploitation, d'ailleurs sous Solaris j'utilise gcc également et pourtant ca marche pas de la même facon.
[jfdsdjhfuetppo]--Message édité par tanguy--[/jfdsdjhfuetppo]