Bonjour,
J´ai un projet en C à faire ( à compléter plus exactement), et j´ai deux questions à ce propos.
1) Un nouveau type est défini, le type labyrinthe :
typedef struct {
int compteur;
unsigned char mur;
} Cellule;
typedef struct {
int largeur;
int hauteur;
int epais_mur;
int larg_cel;
int haut_cel;
Cellule **cel;
int *balayage;
gray **dessin;
} Labyrinthe;
Pour prendre les éléments d´un nouveau type, j´ai appris nouveautype.élémentquelonveut, mais là on utilise nouveautype->élémentquelonveut Est-ce que c´est la même chose ? ( je voudrais avoir confirmation avant de faire bugguer tout le programme
)
2) J´ai le compilateur Dev-C++ sur mon ordi. Je sais compiler un fichier source unique, mais là il faut compiler plusieurs fichiers . c et . h, et lors de la compilation, il précise qu´il ne trouve pas les fichiers appelés.
Par exemple, au début de main.c, j´ai
Et le log de la compilation me sort
pgm.h No such file or directory
Ma question est donc, comment on compile le tout ?
Bon, c´est certainement tout simple, surtout que l´on a pas terminé le cours et que l´on va certainement voir ça ultérieurement, mais j´aimerais prendre un peu d´avance avec les vacances.
Merci d´avance.
1)
non :
a.b et a->b sont différents :
cela téclairera + si je te dis que :
a->b < => ( *a).b
ça dépend donc si tu as une structure ou un pointeur vers une structure :
Voici 2 exemples : :
Labyrinthe L;
L.largeur=3; / / bon
L->largeur=3; / / faux
sinon :
Labyrinthe* L;
/ / malloc de structure
L.largeur=3; / / faux
L->largeur=3; / / bon
2)
copie tes fichiers . h et . c dans ton projet sur la gauche de DevC++.
Ok merci bien !
utilises tux spluS mieux pour coder
utilise ta tete, c´est mieux pour coder...
L´avantage du C ou du C++, c´est qu´il est completement portable.
Donc pour répondre à buz-l-orage : non, Tux n´est pas mieux pour coder.
Il n´est peut etre pas moins bien, mais je ne vois pas pkoi ce serait mieux
( je sais de quoi je parle, j´en ai fait sous Tux aussi)
" L´avantage du C ou du C++, c´est qu´il est completement portable. "
c´est qu´il peut être complétement portable je dirait, parce que faire du code non portable c´est pas très dur, surtout dès qu´on se mets à faire des appli un tant soit peu complexe pour lesquelles on a besoin des service de l´OS a moins de passé par des lib portable, mais qui limite les possibilités...
évidemment, si tu pilotes de la WinAPI, ou du X11, ou de l´OS ( unistd.h est non portable)
bien sur qu´il faut faire attention ( bien que QT, WxWindows, GLUT, SDL, etc...) sont des libs qui permettent de faire de la WinAPI ou des jeux sur les 2 systemes avec le meme code....
Mais bon, pour un probleme de structure, Windows ou Linux n´ont rien a voir la dedans : kif. kif.
oue ´fin je prefere clairement tux pour coder ( en c/c++ en tout cas).
suis loin d´etre anti bilou et pro tux mais pour coder perso, y´a pas photo.
Tu as remplacé :
" utilises tux spluS mieux pour coder"
-->
" oue ´fin je prefere clairement tux pour coder "
merci d´avoir corrigé !
Ne jamais généraliser son cas personnel ![]()
Mouaif mouaif...
Perso avec Visual C++ . net comme ide ( et un bon compilateur derrière pour ceux que ca gêne) je suis comblé sous windows
Après il est fort possible que d´autres languages soient plus agréables à coder sous linux, mais pour C/C++, windows jouit de très solides arguments.
Et puis vu que je ne me sert que de wxWidgets, OpenGL et SDL, pas de soucis de portabilité...
" et un bon compilateur derrière pour ceux que ca gêne"
t´utilise quoi ?
Heu...pour coder il n´y a pas besoin juste d´un éditeur de texte ? Pour compiler je dis pas, mais comme je me sers de Dev C++ comme roue de secours(à l´école je travaille sous Linux), je m´en fiche de savoir si c´est la meilleure manière ou non.
" L´avantage du C ou du C++, c´est qu´il est completement portable. "
Heu oui enfin en theorie.
Moi je passe mon temps a faire du code portable, enfin quand je dis portable c´est pour 3-4 plateforms comletement differentes, chacune avec leur compilo. Et ben c´est BCP de travail...
Oui, mais bon, la on parle de " structs", pensez vous vraiment que le sujet soit un ( 150000eme) débat sur Linux ? ( je sais, c´est moi qui ai vivement répondu, mais bon...)
Oui, sinon, coder revient a taper du code sous un bloc note, puis a la compiler.
Enfin bref, meaculpa pour avoir répondu sur le sujet " Linux", si tu as d´autres questions en C, je serai ravi d´y répondre !
dnob700 > J´utilise celui fourni avec la version 2002 de Visual C++ . net : j´ai rien changé.
Mais certains lui repprochent certaines choses, ils ont donc la possibilité de ne conserver que l´ide.
jyy: je n´ai jamais dis que je codais pour pinguin, et ce n´est pas la cas, et encore moins ce que je voulais dire. Je parlais du fait que les compilos sont tous plus ou moins conformes ( a part comeau ; ) a la norme, et c´est comme ca qu´on se retrouve avec des
for( int i = 0; i < 2; ++i ) ;
for( int i = 0; i < 3; ++i ) ;
qui ne compilent pas sous certaines version de visual.
Si on parle de C, les implementations du C99 sont tres aleatoires, mais bon je pense pas qu´il utilise les fonctionalites du languages qui ne sont pas implementees correctement partout ; )
kufa > tout a fait d´accord ![]()
mais alors le int dans l´initialisation de la boucle c´est à la norme où pas ?
parce que je pensais que c´était le cas, et puis j´ai appris que non.
en tout cas, toute les version du Visual C++ que j´ai vu passer l´acceptait à moins de le désactiver dans les option du compilo, par contre mingw ne l´accepte pas par exemple.
Chaque compilo est un peux différent alors même avec une norme . ... Il faut de tout pour faire un monde hein ! ![]()