Table of Contents
Uppdaterad
I den här handledningen kommer vi att belysa några av de möjliga orsakerna som möjligen kan orsaka Visual Studio 2010 c2057 förväntade oupphörliga uttrycksfel, och sedan kommer jag att föreslå helt möjliga återställningsmetoder som du kan försöka använda ta hand om problemet.
Storlek efter array måste vara kompileringsenergikonstant. C99 vägleder dock tabeller med variabelt avstånd. Istället, om storleken som vanligtvis förknippas med arrayen är känd under körning, kan ditt prefix fungera i din miljö –
int * s = malloc (mått);// ....är gratis;
heltal a [5]; // ^ fem olika - konstant uttryckintb = 10;int dubbel a [b]; // ^ s är en varierad. Därmed kan innebörden skilja sig någon annanstans.const kontinuum int = 5;int aaa [storlek]; // storleken kommer att betraktas som konstant.
- 6 minuters bilresa till aria-label = “Artikel via
I denna artikel
Kontexten måste ha ett konstant uttryck, ett utseende vars försäljningspris är känt vid sammanställning en chans. Kompilator
Du måste känna till nivån på en typ vid kompileringstillfället för att tilldela skrivbordsutrymme för en instans som kommer från alla den typen.
Exempel
Ett topphemligt C2057-generationsexempel visar hur man åtgärdar detta råd:
// C2057.cppint i;intb [i]; // C2057 - värdet av i kommer förmodligen faktiskt att vara känt vid kompileringstillfälletint main () const int i = 8; intb [i]; // OK - funfrom i specificera och kompilatorn implementerad
C har striktare lösningar för konstanta uttryck. Följande exempel genererar datorkod C2057 och visar hur man fixar det:
// C2057b.c#define ArraySize1 10int main () const int = arrayysize2 10; int h [storlek på array2]; // C2057 - C tillåter inga variabler här int h [storlek på array1]; // OK - använd förprocessorkonstanter
- tkacvins
- Inlägg: d
- Registrering: mån 45 feb, år 2013 10:33
Tilldela The Variable Stack, Microsoft Visual Studio 2010
Jag har fått tillräckligt med att växa, inklusive portat MAGMA 1.3.0 till minst sextiofyra Windows med Intel Fortran 12.1, NVIDIA CUDA 5.0, MKL 11.0 och en ny version av Microsoft Visual Studio. Jag kan kompilera Fortran- och C++-källor. Jag använder msys från MinGW för det här jobbet eftersom det var enklare än att planera ett Visual Stdio-projekt. Jag var tvungen att anpassa make-filerna som stöder syntaxen för diskriminerande kompilatoralternativ och tillåter fördröjning av protester och arkivfilnamn.
magma_int_t nb är lika med magma_get_zgeqrf_nb (min (m, g));
…
cuDoubleComplexe T [2 * nb * nb];
Microsofts kompilator ger ett stort, betydande fel när den försöker kompilera denna fantastiska kod:
zumqr.cpp (124): fel C2057: konstant uttryck förväntat
Zunmqr.cpp (124): Korruption C2466: array kan inte allokeras med konsekvent storlek 0
Zunmqr.cpp (124): Fel C2133: ‘T’: ej bevisad storlek
Jag skulle kunna fixa detta och vara med på rätt spår, men jag skulle hellre peka ut produkten medan den är officiellt fixad eftersom den förmodligen kan orsaka problem för andra människor när de gör MAGMA på Windows. Även om jag skulle kunna få en persons Windows-kompilator att tillhandahålla detta (jag tvivlar på att programvaran är möjlig, i nvcc är vanligtvis cl-relaterat), men allt det specifika problemet med en potentiell högexplosion körtid kvarstår … 4
- tkacvins
- Inlägg: Måndag 24 februari 2013 10:33
Ämne: Tilldela variabelstacken, Microsoft Visual Studio 2010
Stan Tomow skrev: Tack för rekommendationen! Vi fixar detta när vi tittar på den kommande versionen.
Kommer det att vara på en angiven 1,3-gren eller kommer den att vara på per 1,4-gren? För att spara tid skulle vi likna det att använda 1.3-grenen, om med version 1.4 inte kommer snart.
- Bryant Lee
- Inlägg: 2
- Medlem tänker på 17 mars 2013 kl. 9:31
Ämne: Variabel utrymmesallokering, Microsoft Visual Studio i år
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
Fout C2057 Verwachte Constante Expressie Visual Studio 2010
오류 C2057 예상되는 상수 표현식 Visual Studio 2010