16. februar 2004 - 22:46Der er
7 kommentarer og 1 løsning
hvad er der med NULL og C?
Ok, måske et rimelig dumt spørgsmål, men jeg er ny i C.
compileren siger:
`NULL' undeclared (first use this function)
er NULL ikke noget indbygget? Der står skrevet i min C bog, at NULL i C kun er et synonym for adressen 0, og at compileren garanterer, at adressen aldrig bliver brugt til at lagre noget på. Derfor anvendes synonymet for læselighedens skyld.
Aha! Så er det derfor! hmm... Ligenu har jeg gang i et kursus i operativsystemer, hvor der er nogen indledende opgaver til den store opgave, hvor man skal lave en kerne. Min opgave her er altså helt specifikt at implementere en C funktion i assembler, og anvende den i et C++ program. Ved I så også, om NULL direkte peger på adressen 0, eller om det er noget fup? Jeg mener, for at kunne lave noget assembler der virker, er jeg ligesom nødt til at vide det.
Jeg opfatter dog spørgsmålet som besvaret af arne v, og han får selvfølgelig pointene ligegyldigt hvad.
tak for det!
forresten! Endnu en ting. Når der skal implementeres en kerne findes standard bibliotekerne jo ikke (der er ligesom ikke noget operativsystem de kan benytte sig af), men det ville nok være en gevaldig hjælp at have NULL til rådighed alligevel. Kan man så bare definere den som en makro?, altså:
C standarden siger at 0 castet til en pointer skal give NULL. Den siger ikke at de 32 bit skal være numerisk 0. Men det er de altid i praksis. De meget C kyndige kan huske en eller anden obskur maskine for 20 år siden, hvor 0 ved castingen blev til noget andet end numerisk 0. Men ...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.