Bonjour à tous !
J'utilise pour la 1ère fois Code Blocks, et quand je compile mon programme en C il me retourne des erreurs de C++... Comment faire pour que ce soit un compilateur de C qui soit utilisé ?
Merci d'avance.
Bonjour à tous !
J'utilise pour la 1ère fois Code Blocks, et quand je compile mon programme en C il me retourne des erreurs de C++... Comment faire pour que ce soit un compilateur de C qui soit utilisé ?
Merci d'avance.
Bonjour,
quelle version de code::blocks utilises-tu? Sur quel OS (je demande ça car les versions sont un peu différentes selon les OS)?
Sur la dernière (8.02), tu peux choisir, lorsque de la création d'un nouveau projet tu peux choisir s'il s'agit d'un projet en C ou en C++.
Mais sinon, si ce sont des .c (et non .cpp), ils seront automatiquement compilé en C.
« L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
Spinoza — Éthique III, Proposition VII
J'ai la dernière version de Code Blocks, sur Windows.
Mon programme a bien l'extension .c ; quand je le compile, il me retourne une erreur de C++, par exemple pour :
il y a l'erreur suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part int* p = malloc(sizeof(int) * 5);
Je n'ai pas appris à mettre (int*) devant un malloc (plus généralement, le type du pointeur)... Alors, soit j'ai mal appris (bouh les profs) soit... c'est pas du C.. Soit... c'est du C mega strict.
Code : Sélectionner tout - Visualiser dans une fenêtre à part error: invalid conversion from `void*' to `int*'
C'ets quoi la bonne réponse ?
Ca fait bien bien longtemps que je n'ai pas programmé en C, mais d'après ce que je viens de lire sur le malloc, cette fonction renvoie bien un void*.
Et d'après ce que j'ai lu, il faut faire un cast pour ce que tu veux faire:
J'aurais donc tendance à dire que c'est gcc qui est très exigeant, mais peut-être que je me trompe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part int* p = (int*) malloc(sizeof(int) * 5);
Quoi qu'il en soit, tu auras de meilleurs réponses sur le sujet du malloc sur le forum C.
En fait, qu'est-ce que qui te fais dire que ce sont des erreurs c++ que tu obtiens?
« L'effort par lequel toute chose tend à persévérer dans son être n'est rien de plus que l'essence actuelle de cette chose. »
Spinoza — Éthique III, Proposition VII
Merci beaucoup pour ta réponse.
En tout cas, bizarre que ça ne me mette pas l'erreur sur les pc de ma fac (FreeBSD, avec GCC comme compilateur...), p'tet que c'est pas la même version que j'ai chez moi.
Pourquoi je pensais que c'était compilé comme du C++ : quand j'ai demandé à afficher tous les warnings et erreurs possibles, ça m'a affiché des erreurs mentionnant le C++... Donc, ça m'a trifouillé les neurones. ^_^
Mystère et boule de gomme.
Ta réponse doit être la bonne (y'a juste une alien dans ma machine, c'est sûr :p). J'vais donc faire plus attention à écrire correctement mon code.
Peut-être que tu avais des commentaires multi-lignes du style /* */ qui ne sont pas standards en C mais seulement en C++ et gcc te l'as indiqué (je crois que ça vient avec l'option -pedantic).
Euh, perdu, ce sont les commentaires unilignes ( avec // ) qui sont interterdits en C89 et C90.
SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.
"Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
Apparently everyone. -- Raymond Chen.
Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.
Ah, ça confirme que j'ai pas de chance avec les jeux de hasard ...
Heureusement que j'ai mis le peut-être
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager