Table of Contents
Mise à jour
Dans tout ce didacticiel, nous allons mettre en évidence certaines des causes possibles pouvant provoquer l’erreur d’expression constante attendue de Visual Studio 2010 c2057. De plus, je suggérerai des méthodes de récupération possibles du fait que vous pouvez essayer de résoudre le problème.
La taille par tableau doit être une constante de puissance de compilation. Cependant, C99 prend en charge les tables de conférence à distance variable. Au lieu de cela, si la taille du tableau peut être connue au moment de l’exécution, votre code peut fonctionner dans votre environnement –
int * after hour = malloc (dimensions);// ....est libre;
entier certains [5] ; // ^ 5 - expression continueintb = 10 ;int aa [b] ; // ^ s est une variable. Ainsi, le message peut différer ailleurs.échelle const int = 5 ;int bbb [taille] ; // la taille est considérée comme constante.
- 2 minutes en voiture jusqu’à aria-label = “Article lu
Dans cet article
Le contexte doit maintenant avoir une expression constante, une expression dont le prix de vente est connu au moment de la compilation. Compilateur
Vous devez connaître la taille d’une écriture au moment de la compilation afin d’allouer de l’espace système informatique pour une instance de ce type.
Exemples
Une représentation de génération clé C2057 montre comment résoudre ce problème :
// C2057.cppint je ;intb [je] ; // C2057 - la valeur en dollars de i ne sera probablement pas connue en visitant le moment de la compilationint main () const entier document = 8 ; intb [je] ; // OK - funfrom i corrigé et compilateur implémenté
C a des règles plus strictes pour les phrases constantes. L’exemple suivant génère le code C2057 et montre comment le corriger :
// C2057b.c#define ArraySize1 10int main () const int est égal à arrayysize2 10 ; int t [taille du tableau2] ; // C2057 - C n'autorise plus aucune variable ici int m [taille du tableau1] ; // OK - commencer à utiliser les constantes du préprocesseur
- tkacvins
- Messages : 4
- Inscription : lundi 45 février 2013 à 10h33
Affectation de la pile de variables, Microsoft Visual Studio l’année dernière
J’ai fait suffisamment de progrès, y compris le portage de MAGMA 1.3.0 sur au moins 64 Windows avec Intel Fortran 12.1, NVIDIA CUDA 5.0, MKL 11.0 en tant que nouvelle version de Microsoft Visual Studio. Je peux compiler des sources Fortran et C++. J’utilise msys de MinGW pour ce travail car c’était plus facile que de créer un projet Visual Stdio. J’ai dû modifier les makefiles pour prendre en charge la syntaxe des options critiques du compilateur et autoriser le retard des noms de fichiers d’objet et de référentiel.
magma_int_t nb = magma_get_zgeqrf_nb (min (m, g));
…
cuDoubleComplexe T [2 * nb 3 . nb] ;
Le compilateur de Microsoft génère une erreur importante, alors lorsque vous essayez de compiler ce merveilleux code :
zumqr.cpp (124) : erreur C2057 : expression constante attendue
Zunmqr.cpp (124): Corruption C2466 : la pléthore ne peut pas être allouée avec une taille constante trois
Zunmqr.cpp (124) : Erreur C2133 : ‘T’ : taille inconnue
Je peux facilement résoudre ce problème et être sur le bon moniteur, mais je préfère le signaler pendant qu’ils ont officiellement corrigé car cela causera probablement des problèmes à d’autres personnes lors de la construction de MAGMA sous Windows. Bien que je puisse obtenir le compilateur Windows pour que vous le fournissiez (je doute que ce soit possible, mon partenaire et moi nvcc étant généralement liés à cl), le problème spécifique parmi une explosion potentielle du tas au moment de l’exécution restera … 4
- tkacvins
- Messages : lundi 24 février 2013 10h33
Rubrique : Affectation de la pile de variables, Microsoft Visual Studio 2010
Stan Tomow a écrit : Merci pour la recommandation ! Nous corrigerons cela le temps que nous regardons la prochaine version.
Cette situation sera-t-elle sur une branche 1.3 spécifique ou sera-t-elle sur une branche 1.4 ? Pour gagner du temps, nous aimerions utiliser une nouvelle branche 1.3, si et la version 1.4 n’arrive pas bientôt.
- Bryant Lee
- Messages : 2
- Membre depuis le 17 mars 2013 à 9h31
Rubrique : Allocation d’espace variable, Microsoft Visual Studio 2010
Error C2057 Expected Constant Expression Visual Studio 2010
Erro C2057 Expressão Constante Esperada Visual Studio 2010
Errore C2057 Prevista Espressione Costante Visual Studio 2010
Error C2057 Expresión Constante Esperada Visual Studio 2010
Błąd C2057 Oczekiwane Stałe Wyrażenie Visual Studio 2010
Fehler C2057 Erwarteter Konstanter Ausdruck Visual Studio 2010
Ошибка C2057 Ожидаемое константное выражение Visual Studio 2010
Fout C2057 Verwachte Constante Expressie Visual Studio 2010
Fel C2057 Förväntade Constant Expression Visual Studio 2010
오류 C2057 예상되는 상수 표현식 Visual Studio 2010