Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2822 connectés 

 


Dernière réponse
Sujet : [C] petit pb // quel est le meilleur compilateur ?
MC Oui GCC c'est -ansi pour les regles ansi , -Wall pour tout les warnings, -Werror pour erreurs sur les warnings, -pedantic pour la norme ISO (plus stricte que ansi je crois), -pedantic-errors pour arrets sur les warnings... Y'en a des pages comme ca...
 
En plus gcc est multiplateforme/multiprocesseur, donc très bien pour faire du cross-compiling (voire du canadian cross-compiling cad construire un cross-compilo sur un host different du host de destination...)

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
MC Oui GCC c'est -ansi pour les regles ansi , -Wall pour tout les warnings, -Werror pour erreurs sur les warnings, -pedantic pour la norme ISO (plus stricte que ansi je crois), -pedantic-errors pour arrets sur les warnings... Y'en a des pages comme ca...
 
En plus gcc est multiplateforme/multiprocesseur, donc très bien pour faire du cross-compiling (voire du canadian cross-compiling cad construire un cross-compilo sur un host different du host de destination...)
ZZZzzz je crois que le meilleur compilateur c/c++ en terme de perfs, c VectorC, mais je n'arrive même pas à télécharger une version démo :( !
ya aussi le compilateur Intel qui n'est pas mal du tout !
Toxin gcc a une permissibilité (si ce mot n'existe pas je vais le proposer à l'académie) que l'on peut paramétrer je crois. Si tu veux compiler en C ANSI tu peux.
MC N'oubliez pas que le compilateur n'est qu'un outil dans une chaine. Un debuggeur est très important aussi, surtout quand on debute. Ca evite d'avoir a faire 3 tonnes de printf quand il y a une erreur dans les milles lignes de codes que l'on vient de se cogner. En plus ca fait gagner du temps car on peux visualiser des choses impossibles autrement (espace mémoire, enumérations, backtrace etc...).
 
Pour gcc, il y a gdb qui est aussi multiplateforme, avec plein de frontend graphiques (surtout sous unix, nottament DDD). VisualC++ a le sien aussi. Par contre Borland C++ version gratuite n'en a pas...
Roswell_ bah c'est pas mal un compilo rigoureux, comme ça ça évite de partir dans tout les sens dans les gros prog.
FMulder pour ce qui est de la rigueur de devC++ je ne peux que confirmer.
il est tellment rigoureux que presque tous les codes que je trouve sur le net pour apprendre ne se compilent pas a cause d'erreurs mineures.
si comme moi tu apprends sur le tas a partir de prgs deja fait, je sais pas si c le top devc++.
c pour ca que je cherche borland c++ pour voir si il est plus tolerant.
slvn ok, mais pkoi borland  serait mieux ?
Dost67 Dev C++ est très bien pour le C. Par contre pour le C++ vaut mieux Visual C++ ou Borland C++. Enfin bon avant j'utilisais Dev C++ et ça suffisait pour apprendre ce que c'est que les pointeurs. En plus le compilateur est très rigoureux (conversions implicites, etc...).
slvn en fait qu est ce qu il sont de mieux ces compilateur ??
 
moi j ai choppé Dev C++,   il est tout joli et en plus il marche sous windows !
 
mais apparement , il a une moins bonne reputation, que les autre, ..parceque justement il tourne sous windows
zop

oh_damned a écrit a écrit :

le meilleur compilateur C est sans aucun doute possible gcc
paramétrable à volonté, la version Unix étant l'idéal évidemment




 
Je dis peut-être des bêtises mais du temps ou je m'en servait sous UNIX (AIX 4.1.???) le code n'avait pas l'air très optimisé en comparaison de ce que sortait xlc(je ne suis pas sur du nom) même avec l'option -o2

oh_damned le meilleur compilateur C est sans aucun doute possible gcc
paramétrable à volonté, la version Unix étant l'idéal évidemment
slvn merci de vos reponses, j ai enfin capté :)

 

--Message édité par slvn--

Roswell_ ou comme ça (cf Verdoux):
 
#include <stdio.h>  
main()  
{  
int *var;  
var=(int*)malloc(sizeof(int));
*var=5;  
printf(" *var= %d ", *var);  
printf("/n &var= %p ", &var);  
printf("/n var= %p ", var);  
}
jupiler

slvn a écrit a écrit :

je croi sque je melange certain truc en fait :
 
&var designe l adresse de var    ?!
*var  designe l objet d adresse var ?!




 
 
erreur: un pointeur est une adresse
 
donc &var c'est une adresse d'adresse, ca veut rien dire.
 
var est l'adresse (c'est un entier donc tu peux le mettre dans un printf), *var est la variable pointée, c'est-à-dire stockée
à l'adresse var .
 
 
dans ton exemple:
 
 
#include <stdio.h>  
main()  
{  
int i;  
int *pi;  
i=5;       i vaut 5
pi=&i;      pi devient l'adresse de i
*pi=6;      à l'adresse pi, on place la valeur 6, or i se trouve
            également à cette adresse, donc i recoit la valeur 6
}

slvn mince je capte pu rien :(
je viens de chopper un exemple =
 
#include <stdio.h>
main()
{
int i;
int *pi;
i=5;
pi=&i;
*pi=6;
}
 
pkoi a la fin  i vaut 6  ???
verdoux Oui mais ton pointeur var pointe n'importe où, là.
Pour qu'il pointe sur un endroit valable, il faut soit lui assigner l'adresse d'une variable int, soit allouer de la mémoire avec malloc.
slvn je croi sque je melange certain truc en fait :
 
&var designe l adresse de var    ?!
*var  designe l objet d adresse var ?!
zop antp a raison : ton pointeur pointe n'importe où, dans ton cas, visiblement dans une zone mémoire où ton programme n'a pas accès, d'où le plantage. Tu devrais essayer  
 
#include <stdio.h>
main()
{
int val;
int *var= &val;
*var=5;
printf(" *var= %d ", *var);//valeur de val(zone pointée par var)
printf("\n &var= %p ", &var);//adresse du pointeur var
printf("\n var= %d ", var);  //adresse de val
}
antp int *var -> pointeur vers un entier, espace mémoire pointé indéfini (puisque variable non initialisée)
*var=5 -> on place 5 à une adresse mémoire indéfinie.
C'est normal que ça plante je crois... non ?
slvn petit pb avec ce porg qui compile mais qui foire :
 
#include <stdio.h>
main()
{
int *var;
*var=5;
printf(" *var= %d ", *var);
printf("/n &var= %p ", &var);
printf("/n var= %p ", var);
}
 
 
========
cependant, qu est ce que vous pensez du compilateur Dev C++ ???

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)