Si si il me semble.
Version imprimable
Si si il me semble.
Non, c'est justement une avancée du C99Citation:
Envoyé par MatRem
JolyLoic > C'est du C valide, mais pas du C++ valide ? C'est dû à quoi ?
En C++ il faut prédéclarer l'existence des types/structures/classes/fonctions/... avant de s'en servir dans une autre entité.
Le C impose une sorte de "rétro-parsing" ?
Merci pour le lien. Je connaissait pas les Variable-Length Arrays. Y as bien une autre philosophie en CCitation:
Envoyé par Miles
Beaucoup plus courant, la conversion implicite de void * en n'importe quel pointeur.Citation:
Envoyé par JolyLoic
Les fonctions -- sous certaines conditions de prototypes -- peuvent ne pas etre declaree avant d'etre utilisees.Citation:
Envoyé par Alp
Ok. Le compilo gère ça comment ? Il enregistre tous les appels à des fonctions non déclarées et voit si elles sont déclarées dans le même fichier plus bas ( ou dans un fichier inclus plus bas, ce qui au final revient presque au même )
Ah oui, effectivement, il y a un warning avec gcc qui est affiché en disant qu'il considère la fonction comme un je-ne-sais-plus-quoi.
Il la compile comme si elle avait ete declaree avec un prototype particulier (type de retour int, type des parametres, celui qui est donne par les regles de promotions appliquees dans le cas des fonctions variadiques).Citation:
Envoyé par Alp
Regarde Adobe.GIL (qui devient boost.GIL), tu vas devrais (mieux) servi en templates appliqués à la manipulation d'images.Citation:
Envoyé par Miles
C'est très proche de Vigra comme programmation (lui-même plus développé par certains aspects), mais ce n'est pas la panacée tout de même. Y'a rien de démentiellement extraordinaire en terme de méta-programmation dedans à part des choses simples, enfin je trouve.
Personnellement je ne fais pas vraiment du c ni vraiment du c++. Je fais du generic, un mix des deux. Généralement mes projets sont des projets c++ avec compilo g++, mais il y a un tas de chose que j'utilise qui viennent du c car je les trouve plus simple à manipuler, par exemple les flux! surtout les écritures/lectures en fichiers. Mais en gros je fais principalement du code en c-style et j'utilise les composants du c++ qui m'arrangent, que ce soit pour faire du calcul numérique pour ma these, ou bien pour faire du dev sous windows avec wxwidgets.
Les flux (stream) sont du C++, à moins que tu ne parles des FILE* ?
C'est dommage que tu n'utilises pas tout ce qu'apporte le C++.
Ces deux langages sont vraiment différents, donc autant à programmer en C++, sers-toi de la puissance supplémentaire disponible.
oui, lorsque je compte écrire/lire dans un fichier j'utilise FILE*
Pourquoi te servir de FILE* alors que les streams du C++ le remplacent avantageusement ?
Qu'est-ce que tu préfères dans l'implémentation C ?
Si tu trouves ça plus simple que les flux C++, c'est que tu n'as pas vraiment donné leur chance à ces derniers.Citation:
Envoyé par reptils
peut etre qu'a terme je passerai de plus en plus au c++ style, mais pour le moment vu que je fais principalement du calcul numerique je n'ai AUCUN apport du c++ vis-avis du c. La seul raison pour laquelle mon code elements finis pour calculer mes champs electromagnetiques est faite en c++ c'est juste par rapport à l'existance de la class complex. Car meme si la norme C99 defini les nombres complex je trouve ça moins clair...Citation:
Envoyé par Alp
J'ai une questoin à propos du c++ sur l'allocation dynamique. si je fais:
tab est un tableau de type MaClass alloué à nb_element? et si oui, je ne vois pas à quel moment on fait appel au constructeur pour chaque element?Code:MaClass* tab=new MaClass[nb_element]
EDIT: pour cette histoire de stream, c'est juste que je trouve moins pratique pour formatter la sortie en c++. Genre si je veux mettre un entier de 7 places puis un reel écrit au format scientifique avec un certaine précision etc c'est plus simple avec printf je trouve.
je sui d'accord avec reptils (pour le formatage des fichiers).Citation:
Envoyé par Laurent Gomila
La seul reponse que j'ai eu pour faire la même chose est BOOST, il faut donc faut ajouter des fichier :cry:
Oui et en même temp. Le new va alloué l'espace memoire necessaire pour tes instances et appeler le constructeur par default pour chaqu'une d'elle.Citation:
Envoyé par reptils