Het MacFreak® Forum - Voor online ondersteuning in het Nederlands!

    Het MacFreak® Forum
     Vragen: Programmeren in C(++), Cocoa, Java, BASIC
         Geheugen-adressen printen
                
Welkom bij Vragen: Programmeren in C(++), Cocoa, Java, BASIC 

      Forum gemodereerd door: Moderator  
  Spring naar onderwerp
« Ouder - Nieuwer »  
Onderwerp met meerdere pagina's:
« Vorige    [ 1 2 ]   

    

       
Syncan
Niet Aanwezig



Nieuw Lid
Aantal berichten: 12 | Lid sinds: 09-01-2011 | Geplaatst om: 19:58 - 27-01-2011
Dank je wel! Dat zijn er een hoop!    

Syncan
Niet Aanwezig



Nieuw Lid
Aantal berichten: 12 | Lid sinds: 09-01-2011 | Geplaatst om: 20:23 - 27-01-2011

Citaat: Macceraar om 19:57, 27-01-2011
Sorry dat het meteen zo moeilijk is, maar ik moest even een paar correcties het draadje in gooien.

LP64 staat voor long-pointer-64, dus dat long ints en pointers 64 bits zijn. En int impliciet 32, dus minder dan de pointer. Verschillende systemen kunnen verschillende groottes hebben, en het is beter om daar rekening mee te houden als je wilt dat je code zonder al te veel aanpassingen op andere systemen draait. De stap van PPC naar x86 en naar 64-bit was lang niet zo groot geweest als meer software niet zo sterk op de 'huidige' systemen was gericht.

Iets concreter: als je voor 64-bit compileert (standaard tegenwoordig), en je pointer omzet naar een int, dan zal dat werken op je Air, maar er gaat informatie verloren. Er zijn meerdere pointers die dezelfde int geven, en als je de int weer omzet naar een pointer zul je zien dat hij niet meer werkt.

intptr_t is een type gedefinieerd in . Dat is een integer die een pointer kan bevatten. Als je zeker weet dat je het nodig hebt, is het het beste om dat type te gebruiken. Maar meestal is het beter om in de eerste plaats niet met zulke praktijken bezig te zijn.

%p neemt een void * net zoals %d een int en %g een double nemen. printf("%p\n", (void *)some_pointer) dus, om het helemaal netjes te doen.

Er zijn op het internet en op je computer specificaties en documentatie te vinden. Alleen al een paar manieren om man pages te bekijken:
- Terminal: man 3 printf
- Xcode: Help -> Open man Page... -> 3 printf
- Xcode: Help -> Developer Documentation -> printf

De 3 is bij de bovenste twee omdat er ook een "1 printf" is, een shellcommando, dat anders voorrang krijgt. Voor veel functies is de 3 (of 2, die je bij system calls ziet) niet nodig en kan je alleen de naam geven.

Hopelijk is dit een klein beetje beter te begrijpen, al heb ik niet de tijd om op alles helemaal in te gaan.


Het is al een stuk beter te begrijpen    
Ik zal die man-pages ook nalezen. Ik kom oorspronkelijk van Windows, waar ik met Visual C# gewerkt heb. C werkt naar mijn idee veel meer met pointers. Ik heb drie boeken aangeschaft die elkaar ( hopelijk ) aanvullen: Learn C on the Mac, Learn Objective C on the Mac en Learn Cocoa on the Mac, allemaal uitgegeven bij Apress.
Samen met wat ik hier op dit forum vind, kan ik dus voorlopig nog wel even vooruit    

       

Spring naar onderwerp
« Ouder - Nieuwer »
Onderwerp met meerdere pagina's:
« Vorige    [ 1 2 ]   

MF-Forum v6.0.0 © 2001/2012 - MacFreak® Interactive Media