2010-12-15 100 views
0

Il y a quelque temps que j'utilisais un IDE C++ de Dev qui fonctionnait sous Windows et livré avec MinGW (port Windows de GCC), maintenant je suis passé à MAC OS X Leopard et j'utilise Code :: Blocks IDE avec GCC v4.2 (version modifiée par Apple) qui vient avec XCode 3.2.2. Je ne sais pas si mon problème dépend de la distribution (Dev cpp) ou de la sortie du compilateur, ou peut-être du fait que c'est une distribution Apple de GCC, mais j'ai rencontré cette différence dans la déclaration des données structurées.Règles de compilation standard de GCC différant forme distribution/version à un autre: structures

Dans l'ancien RPC Dev, fonctionnant sous Windows i simplement delcared ce

const int max = 1000;

données struct {

char thing[max]; 
    int anotherthing; 

}

alors j'ai utilisé en référence à une fonction comme ceci:

une_fonction vide (données quelque chose)


Il a bien fonctionné . Sur la version Xcode du compilateur en utilisant Code :: Blocks IDE je reçois quelques erreurs et ne compilera pas.

new types may not be defined in a return type 

erreur: 'max' n'a pas été déclarée dans ce champ

Merci!

+0

Pouvez-vous publier l'extrait de code complet et l'erreur qui contient le numéro de ligne? Du peu que vous avez posté, il vous manque un; à la fin de votre définition de structure, mais il s'agit probablement d'une erreur de copier-coller. – greatwolf

Répondre

0

J'ai fait un commentaire avec le contenu de l'erreur sur la ligne de droite à laquelle il reefers.

inclure

en utilisant l'espace de noms std; const int max = 1000;

typedef struct {Dato

short pos; 
char cont[max]; //error: 'max' was not declared in this scope 

};

... Vient ensuite la fonction principale:

int main() {

char aArray[max]; //error: 'max' was not declared in this scope 
int posz; 

... continuer Whit du bon code

+0

Ceci n'est pas une réponse. Si vous faites cela, les gens peuvent penser que la question a déjà une réponse. Il est préférable de modifier votre question à la place. – Heatsink

+0

oh, vous avez raison désolé je suis nouveau :) – Ariztotele

0

De l'extrait de code que vous avez posté, je ne » Je vois quelque chose de mal avec ça. Il devrait compiler sans l'erreur que vous obtenez. Que se passe-t-il si vous vous déplacez au maximum dans la portée locale de main? Est-ce que cette erreur pour aArray arrive toujours?

La seule autre chose que je pourrais penser à ce qui pourrait affecter la compilation sont les commutateurs passés à gcc. À quoi ressemble la commande transmise par C :: B lorsque gcc est invoqué?