Avatar billede sbk200 Nybegynder
09. december 2008 - 08:06 Der er 4 kommentarer

Hvor er det nødvendig at anvende huge i ansi-C

Hej Alle,

Vi har et embedded projekt hvor det har været nødvendig at anvende huge pointers. Vi kunne også have anvendt far, men har valgt at leve med overhead'et som en huge gir. Grunden er at vi kan anvende eksempelvis ++ operatoren uden det giver problemer.

Mit spørgsmål er så hvor det er nødvendig at anvende huge keyword?
Pt. bruger vi det foran variabler, strukturer, funktioner, parametre i funktioner (altså ikke kun foran pointers), men er det nødvendig og hvordan anvendes key-wordet korrekt?

Mvh
Søren
Avatar billede segmose Nybegynder
09. december 2008 - 09:03 #1
Huge er vist nok ikke ANSI, men skal bruges når dine structurer eller arrays bliver over en vis størrelse, på de gamle 80x86 maskiner var det 64K, hvert element i et array skulle have størrelsen 2^x (f.ex. 256Byte eller 4K). Ellers bruges "far" når structuren er mindre men den totale mængde data gør at man overskriver data segment størelsen, f.ex. 64K på en 80x86.
Avatar billede sbk200 Nybegynder
09. december 2008 - 09:48 #2
Hej Segmose, Tak for input!
Men skal jeg så skrive huge foran alle variabler, funktioner, strukturer, parametre i funktioner og pointere. ... eller kun pointers?
Det kan jeg ikke hitte ud af.
mvh
Søren
Avatar billede segmose Nybegynder
09. december 2008 - 10:18 #3
Kun store structurer/arrays og pointerer til disse KRÆVER huge. Alle andre pointerer kan klare sig med far hvis det de peger på er erklæret far eller ingenting hvis de er erklæret i samme object og ikke erklæret far.
Avatar billede arne_v Ekspert
10. december 2008 - 01:42 #4
Avatar billede Ny bruger Nybegynder

Din løsning...

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester