J'essaie d'utiliser enums à l'intérieur d'une structure et cela compile et fonctionne bien avec gcc
. Mais le même code lorsqu'il est compilé avec g++
génère une erreur.enums dans une structure - C vs C++
#include<stdio.h>
#include<stdlib.h>
struct foo
{
enum {MODE1, MODE2, MODE3} mode;
enum {TYPE1, TYPE2} type;
};
void bar(struct foo* bar)
{
bar->mode = MODE1;
}
int main()
{
struct foo* foo = (struct foo*) malloc(sizeof(struct foo));
bar(foo);
printf("mode=%d\n",foo->mode);
}
sortie pour gcc
-bash-4.1$ gcc foo.c
-bash-4.1$ ./a.out
mode=0
sortie pour g ++
-bash-4.1$ g++ foo.c
foo.c: In function ‘void bar(foo*)’:
foo.c:11: error: ‘MODE1’ was not declared in this scope
Hourra! Quelqu'un qui comprend que C et C++ sont des langues (très) différentes! (Bien sûr, je parle du compilateur: P) – Manu343726
sûr qu'ils sont différents, il y a beaucoup de différences. – 4pie0
@ Manu343726: Seriez-vous heureux si je modifiais le titre en 'gcc vs g ++' au lieu de 'c vs C++' :) – arunmoezhi