Ga naar inhoud

compile


anoniem

Aanbevolen berichten

ik krijg de volgende foutmelding als ik mijn c programmatje probeer te compilen dit is bij elk programma als het gewoon aan mijn comp ligt wie kan het dan voor mij doen. --------------------Configuration: pollard - Win32 Debug-------------------- Compiling... pollard.c C:\Documents and Settings\Marc\Bureaublad\pollard.c(17) : error C2632: 'long' followed by 'long' is illegal C:\Documents and Settings\Marc\Bureaublad\pollard.c(28) : warning C4013: 'printf' undefined; assuming extern returning int C:\Documents and Settings\Marc\Bureaublad\pollard.c(29) : warning C4013: 'exit' undefined; assuming extern returning int Error executing cl.exe. pollard.obj - 1 error(s), 2 warning(s) de source: int gcd(int m, int n) { int t; while(n) { t = m%n; m = n; n = t; } return m; } /* Factorize 1000000013 using Pollard rho */ int main(){ int n = 1000000013; int ct = 0; long long x, y; int g; x = y = 0; loop: x = (x*x+3)%n; y = (y*y+3)%n; y = (y*y+3)%n; ct++; g = gcd(n,n+x-y); if (g == n) { printf("bad luck after %d steps\n", ct); exit(1); } if (g == 1) goto loop; printf("factor %d found after %d steps\n", g, ct); return 0; }
Link naar reactie
Wanneer je 2 variabelen declareert en deze zijn hetzelfde (2 longs) dan hoef je maar 1x het type aan te geven: long x, y; printf is een functie uit de bibliotheek stdio.h deze moet je dus includen helemaal bovenaan in je broncode in de vorm van: #include <stdio.h> Ik weet ff niet welke compiler je gebruikt dus je moet ff kijken of deze bibliotheek bestaat en dat je op deze manier kunt includen.
Link naar reactie
[i:94580b7a4a]long long[/i:94580b7a4a] is een type, dat door je compiler niet ondersteund wordt. Zoek even welk type door jouw compiler wordt gezien als een 64bit type (DWORD of zo ?). Eventueel kun je een long gebruiken, maar dan moet je wel opletten dat de mogelijke waardes (in je programma) voor die variabelen geen overflow veroorzaken. Overigens is het gebruik van [i:94580b7a4a]goto[/i:94580b7a4a] in C programma's niet de gebruikelijke manier om loops te maken.
Link naar reactie
[quote:130b41f5d0="almar"]kan iemand het voor mij doen want [b:130b41f5d0]niks[/b:130b41f5d0] doet het bij mij het compilen volgens dan die verbeteringen en dan mij sturen via mijn email .....[/quote:130b41f5d0]Welke foutmeldingen krijg je nu? Je programmeert onder windows (gezien de win32-debug melding), welke compiler (was al eerder gevraagd)? Welke setup (windows programma, console application (dosbox, de code die je geeft is voor een console application), etc)? Welk commando gebruik je om te compileren? Hoe schat je je eigen programmeer-kunnen in (beginner, gevorderd, expert).
Link naar reactie
nou ik doe met visual basic ik heb em neit zelf geschreven dus de rest weet ik niet ik ben lager dan beginner en ik haat c veels te ingewikkeld van visual basic weet ik meer af...dus als iemand het voor mij kan vertalen naar vb of kan compilen zou ik heel veel geholpen zijn ps ik heb ooit c boek gehuurd maar heb ik al na de 1e blz teruggebracht
Link naar reactie
[quote:441020ffc5]nou ik doe met visual basic[/quote:441020ffc5] He? :-? Bedoel je niet Visual C? Trouwens, wat voor c boek had je dan? Ik ben ook net begonnen met c, met het boek 'C in 24 uur', en ik vind het juist een heel makkelijke programmeertaal. Voorheen gebruikte ik BASIC en PASCAL, maar die geven bij het minste of geringste al een foutmelding. Met C hoef je vaak ook geen typeconversies uit te voeren. Char weergeven als int gaat bijvoorbeeld zomaar, terwijl je dan in bijvoorbeeld Delphi eerst een typeconversie moet doen.
Link naar reactie
[quote:2d2e43e4e0="m021"]Trouwens, wat voor c boek had je dan? Ik ben ook net begonnen met c, met het boek 'C in 24 uur', en ik vind het juist een heel makkelijke programmeertaal. Voorheen gebruikte ik BASIC en PASCAL, maar die geven bij het minste of geringste al een foutmelding.[/quote:2d2e43e4e0] Wacht maar totdat je iets ingewikkelders begint te doen, dan ga je die woorden HEEL snel inslikken. Bij een complexer programma heb je namelijk veel meer aan een compiler die erg streng is dan aan een compiler die alles wel best vindt -- die laatste staat veel meer fouten toe. [quote:2d2e43e4e0]Met C hoef je vaak ook geen typeconversies uit te voeren. Char weergeven als int gaat bijvoorbeeld zomaar, terwijl je dan in bijvoorbeeld Delphi eerst een typeconversie moet doen.[/quote:2d2e43e4e0] Mja, maar dat komt dan ook omdat chars in C gewoon een numeriek type zijn dat een subtype is van int.
Link naar reactie
[quote:331d21f67c] Met C hoef je vaak ook geen typeconversies uit te voeren. Char weergeven als int gaat bijvoorbeeld zomaar, terwijl je dan in bijvoorbeeld Delphi eerst een typeconversie moet doen. [/quote:331d21f67c] [quote:331d21f67c] Mja, maar dat komt dan ook omdat chars in C gewoon een numeriek type zijn dat een subtype is van int [/quote:331d21f67c] Jongens jongens. Ga alsjeblieft een boek van c kopen ofzo want hier klopt geen hout van. :evil: Allereerst is een char een pointer naar een character en is een int dit zeker niet en kan daarom ook nooit een subtype zijn. Verschil tussen een adres op de stack zetten of een waarde is essentieel. Ten tweede is de uitkomst altijd ongedefinieerd als je geen expliciete typecast toepast. Misschien is jullie compiler zo slim, of probeerde je soms met %d een char uit te printen? Dan pas je eigenlijk al een typecast toe dus.
Link naar reactie
[quote:65fa588e63="w.roosenburg"] Jongens jongens. Ga alsjeblieft een boek van c kopen ofzo want hier klopt geen hout van. :evil: Allereerst is een char een pointer naar een character en is een int dit zeker niet en kan daarom ook nooit een subtype zijn.[/quote:65fa588e63] Ik citeer uit K&R, tweede editie, die ook een beschrijving is van de ANSI C standaard, uit sectie 2.7 "Type Conversions" (en ik neem aan dat dat wel telt als een "boek van c"): [i:65fa588e63]A char is just a small integer, so chars may be freely used in arithmetic expressions.[/i:65fa588e63] Daarnaast zal het je misschien opgevallen zijn dat een char ook signed en unsigned mag zijn en dat de definitie van het type char in feite is "een byte" (de eenheid die voldoende is om op een platform de codering van de karakterset te bevatten). Als je daarnaast bedoelt dat variabelen van het type char bij tijd en wijle speciaal behandeld worden met betrekking tot de door de compiler gegenereerde code, dan heb je natuurlijk gelijk. [quote:65fa588e63]Ten tweede is de uitkomst altijd ongedefinieerd als je geen expliciete typecast toepast. Misschien is jullie compiler zo slim, of probeerde je soms met %d een char uit te printen? Dan pas je eigenlijk al een typecast toe dus.[/quote:65fa588e63] Nee hoor, da's gewoon ANSI C -- als je een char impliciet converteert naar een int, is het resultaat gelijk aan de numerieke waarde opgeslagen in de char met een aanvulling om de bovenste byte te vullen. Het enige ongedefinieerde eraan is dat de machine zelf mag weten of een char signed of unsigned is en dat de opvulling van de bovenste byte dus machine-specifiek is, maar verder.... En andersom is compleet gedefinieerd: conversie van grotere types naar char geschiedt door de extra byte te laten vallen. Ben.
Link naar reactie
  • 3 weken later...

Om een reactie te plaatsen, moet je eerst inloggen

Gast
Reageer op dit topic

×   Geplakt als verrijkte tekst.   Herstel opmaak

  Er zijn maximaal 75 emoji toegestaan.

×   Je link werd automatisch ingevoegd.   Tonen als normale link

×   Je vorige inhoud werd hersteld.   Leeg de tekstverwerker

×   Je kunt afbeeldingen niet direct plakken. Upload of voeg afbeeldingen vanaf een URL in

  • Populaire leden

    Er is nog niemand die deze week reputatie heeft ontvangen.

  • Leden

    Geen leden om te tonen

×
×
  • Nieuwe aanmaken...