[elektro] PIC C sztring
Palasik Sandor
palasik at mail.datanet.hu
Fri Feb 24 18:24:24 CET 2012
>> A char[] és a char * nem ugyanaz.
>
> De.
De mégsem.
Vegyük a következő egyszerű programot:
extern char *string;
extern char array[];
char *sp;
char *ap;
void x()
{
sp = string;
ap = array;
}
És nézzük meg a belőle keletkező intel kódot:
; 9 : sp = string;
00003 a1 00 00 00 00 mov eax, DWORD PTR _string
00008 a3 00 00 00 00 mov DWORD PTR _sp, eax
; 10 : ap = array;
0000d c7 05 00 00 00
00 00 00 00 00 mov DWORD PTR _ap, OFFSET FLAT:_array
Vagy ugyanez PIC-re:
;x.c: 9: sp = string;
global _sp
global _string
03F9 0800 movf (((_string))),w
03FA 00A1 movwf (((_sp)))
;x.c: 10: ap = array;
global _ap
global _array
03FB 3000 movlw ((_array))
03FC 00A0 movwf (((_ap)))
Marhára nem mindegy, hogy egy konstanst kell átmásolni, vagy pedig egy
memóriacímről ki kell olvasni egy pointert.
Palasik Sándor
More information about the Elektro
mailing list