Цитата Сообщение от Vitamin Посмотреть сообщение
А что выдаст на
Код:
static char string[255] = "Hello World\n";
?
сокращение кода примерно на 300 байт. но строка так целиком в бинарнике и не появилась. в этом плане IAR получше будет...

---------- Post added at 22:14 ---------- Previous post was at 21:22 ----------

и ещё об оптимизации... строка
unsigned char string[]="Hello World\n";
SDCC превращает вот в это УГ!!!
Код:
;main.c:7: unsigned char  string[]="Hello World\n";
    ld    hl,#0x0003
    add    hl,sp
    ld    c,l
    ld    b,h
    ld    a,#0x48
    ld    (bc),a
    ld    e,c
    ld    d,b
    inc    de
    ld    a,#0x65
    ld    (de),a
    ld    e,c
    ld    d,b
    inc    de
    inc    de
    ld    a,#0x6C
    ld    (de),a
    ld    hl,#0x0003
    add    hl,bc
    ex    de,hl
    ld    a,#0x6C
    ld    (de),a
    ld    hl,#0x0004
    add    hl,bc
    ex    de,hl
    ld    a,#0x6F
    ld    (de),a
    ld    hl,#0x0005
    add    hl,bc
    ex    de,hl
    ld    a,#0x20
    ld    (de),a
    ld    hl,#0x0006
    add    hl,bc
    ex    de,hl
    ld    a,#0x57
    ld    (de),a
    ld    hl,#0x0007
    add    hl,bc
    ex    de,hl
    ld    a,#0x6F
    ld    (de),a
    ld    hl,#0x0008
    add    hl,bc
    ex    de,hl
    ld    a,#0x72
    ld    (de),a
    ld    hl,#0x0009
    add    hl,bc
    ex    de,hl
    ld    a,#0x6C
    ld    (de),a
    ld    hl,#0x000A
    add    hl,bc
    ex    de,hl
    ld    a,#0x64
    ld    (de),a
    ld    hl,#0x000B
    add    hl,bc
    ex    de,hl
    ld    a,#0x0A
    ld    (de),a
а к слову сказать
unsigned char * string ="Hello World"; делает как раз то что надо :-), только такая запись бывает не всегда уместна. сяс посмотрю что компилит IAR...

---------- Post added at 22:20 ---------- Previous post was at 22:14 ----------

IAR фиолетово как писать
usnigned char string[]="Hello World"; или
usnigned char * string="Hello World";
Строка красиво и главное целостно ложится в бинарник... и это радует!