Table of Contents
Bijgewerkt
In deze zelfstudie gaan we terug om enkele van de mogelijke oorzaken te benadrukken die de verwachte uniforme expressiefout van Visual Studio 2010 c2057 zouden moeten veroorzaken, en dan zal ik geschikte herstelmethoden voorstellen die u kunt proberen om echt te doen het probleem.
Grootte per array wil de energieconstante compileren. C99 handhaaft echter tabellen met variabele afstanden. In plaats daarvan, als de grootte met betrekking tot de array bekend is tijdens runtime, kunnen uw codes in uw omgeving werken –
int * s = malloc (afmetingen);// ....is gratis;
geheel getal a [5]; // ^ meerdere - constante uitdrukkingintb = 10;int dubbel a [b]; // ^ s is een divers. De betekenis kan dus ergens anders verschillen.const machine int = 5;int aaa [grootte]; // de grootte wordt als constant beschouwd.
- twee minuten rijden naar aria-label = “Artikel aandachtig lezen
In dit artikel
De context moet een constante uitdrukking hebben, een look waarvan de verkoopprijs bekend is tijdens de compileerperiode. Compiler
U moet de hoogte van een type weten tijdens het compileren in de structuur om bureaubladruimte toe te wijzen aan een instantie in dat type.
Voorbeelden
Een belangrijk voorbeeld van de C2057-generatie laat zien hoe je dit soort problemen kunt oplossen:
// C2057.cppint ik;intb [i]; // C2057 - de waarde van i zal waarschijnlijk niet bekend zijn tijdens het compilerenint hoofd () const int i = 8; intb [i]; // OK - funfrom ik geconstrueerd en compiler geïmplementeerd
C heeft strengere regels voor constante uitdrukkingen. Het volgende voorbeeld genereert wetten C2057 en laat zien hoe u dit kunt oplossen:
// C2057b.c#define ArraySize1 10int hoofd () const int = arrayysize2 10; int h [grootte van array2]; // C2057 - C staat hier geen variabelen toe int h [grootte van array1]; // OK - gebruik preprocessorconstanten
- tkacvins
- Berichten: 3
- Registratie: ma februari 45, het jaar 2013 10:33 uur
De variabele stapel toewijzen, Microsoft Visual Studio 2010
Ik heb genoeg gedaan, inclusief het overzetten van MAGMA 1.3.0 naar ten minste vierenzestig Windows met Intel Fortran 12.1, NVIDIA CUDA 5.0, MKL 11.0 en een nieuwe versie van Microsoft Visual Studio. Ik kan Fortran- en C++-bronnen compileren. Ik gebruik msys van MinGW voor deze taak omdat het gemakkelijker was dan het promoten van een Visual Stdio-project. Ik moest de makefiles die de syntaxis van de juiste compiler-opties ondersteunen, variëren en de vertraging van stuk- en archiefbestandsnamen toestaan.
magma_int_t nb impliceert magma_get_zgeqrf_nb (min (m, g));
…
cuDoubleComplexe T [2 * nb * nb];
De compiler van Microsoft geeft elke vorm van significante fout bij het compileren van deze geweldige code:
zumqr.cpp (124): fout C2057: constante expressie verwacht
Zunmqr.cpp (124): Corruptie C2466: array kan niet worden toegewezen met continue grootte 0
Zunmqr.cpp (124): Fout C2133: ‘T’: naamloze grootte
Ik zou dit kunnen oplossen en op de goede weg zijn, maar ik wil er liever op wijzen dat het officieel is opgelost, omdat het waarschijnlijk problemen kan veroorzaken voor andere mensen bij het werken met MAGMA op Windows. Hoewel ik de Windows-compiler zou kunnen krijgen om dit te bieden (ik betwijfel of dit mogelijk is, i nvcc is meestal cl-gerelateerd), het specifieke probleem van een mogelijke heap-explosie samen met runtime blijft … 4
- tkacvins
- Berichten: maandag 24 februari, het jaar 2013 10:33 uur
Onderwerp: De variabele stapel toewijzen, Microsoft Visual Studio 2010
Stan Tomow schreef: Bedankt voor de aanbeveling! We lossen dit op als we naar de volgende versie kijken.
Zal het op een gericht 1.3-filiaal zijn of op één specifiek 1.4-filiaal? Om tijd te besparen zouden we als voorbeeld de 1.3 branch gebruiken, als plus versie 1.4 niet snel komt.
- Bryant Lee
- Berichten: 2
- Lid gezien het feit dat 17 maart 2013 om 9.31 uur
Onderwerp: variabele ruimtetoewijzing, Microsoft Visual Studio het jaar
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
Erreur C2057 Expression Constante Attendue 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
Fel C2057 Förväntade Constant Expression Visual Studio 2010
오류 C2057 예상되는 상수 표현식 Visual Studio 2010