AnonimoVeneziano
12-01-2003, 12:46
Ciao , ho un problema con i puntatori HUGE e FAR in GCC , sono relativamente nuovo al mondo del C, e stavo giocherellando coi puntatori , in particolare nella trasformazione degli indirizzi Seg:off in indirizzi normalizzati con questo codice :
#include <stdio.h>
#include <dos.h>
int main();
int main() {
char far *cfPtr;
char huge *chPtr;
chPtr = (char huge *)(((long)FP_SEG(cfPtr)) << 16)+
(((long)(FP_OFF(cfPtr) >> 4)) << 16)+(FP_OFF(cfPtr) & 0xF);
}
Mi da diversi errori , all' inizio mi da che non trova la libreria "dos.h" (ma è una cosa esclusiva di Windows? :confused: ) Poi ho provato a toglierlo #include <dos.h> (e ovviamente sapevo che non si sarebbe compilato nulla perchè MK_FP FP_SEG e FP_OFF sono elementi di <dos.h> ma la cosa che mi ha lasciato un po' strano è che non mi compila a causa di char far *cfPtr e char huge *chPtr , se tolgo "far" si compila :confused: ho provato a scambiare huge ma mi da sempre lo stesso errore , ovvero "Syntax error before '*'"
Qualcuno mi sa dire perchè??
Ciao
#include <stdio.h>
#include <dos.h>
int main();
int main() {
char far *cfPtr;
char huge *chPtr;
chPtr = (char huge *)(((long)FP_SEG(cfPtr)) << 16)+
(((long)(FP_OFF(cfPtr) >> 4)) << 16)+(FP_OFF(cfPtr) & 0xF);
}
Mi da diversi errori , all' inizio mi da che non trova la libreria "dos.h" (ma è una cosa esclusiva di Windows? :confused: ) Poi ho provato a toglierlo #include <dos.h> (e ovviamente sapevo che non si sarebbe compilato nulla perchè MK_FP FP_SEG e FP_OFF sono elementi di <dos.h> ma la cosa che mi ha lasciato un po' strano è che non mi compila a causa di char far *cfPtr e char huge *chPtr , se tolgo "far" si compila :confused: ho provato a scambiare huge ma mi da sempre lo stesso errore , ovvero "Syntax error before '*'"
Qualcuno mi sa dire perchè??
Ciao