eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronika › [Podstawy C] Inicjalizacja zmiennych CHAR wartością zależną od #define
Ilość wypowiedzi w tym wątku: 13

  • 11. Data: 2009-10-31 22:31:08
    Temat: Re: [Podstawy C] Inicjalizacja zmiennych CHAR wartością zależną od #define
    Od: Konop <k...@g...pl>

    Zbych pisze:
    > Adam Dybkowski pisze:
    >
    >> Wykorzystaj operator # zamieniający identyfikator na ciąg znaków.
    >> Zobacz w helpie do języka C (a dokładniej mówiąc do preprocesora).
    >
    > # mu nie pomoże, bo on chce mieć znak o kodzie 1, a nie 1 ascii (0x31).

    Ehhh, a ja ambitnie sam chciałem dojść do tego jak użyć tego #... no ale
    nic mi nie wyszło ;)... efekt był taki, jakiego można się było
    spodziewać - zamiast znaku numer 1 uzyskalem napis MOJ_ZNAK na LCD ;)...

    Pozdrawiam
    Konop


  • 12. Data: 2009-11-02 07:08:52
    Temat: Re: [Podstawy C] Inicjalizacja zmiennych CHAR wartością zależną od #define
    Od: "Artur M. Piwko" <m...@b...pl>

    In the darkest hour on Sat, 31 Oct 2009 14:29:00 +0100,
    Zbych <z...@o...pl> screamed:
    >> Przy okazji, trochę to niebezpieczne... Za chwilkę może chcieć dodać
    >> cokolwiek po \1 i okaże się, że od czasu do czasu trafi na to miejsce
    >> jakaś cyfra.
    >>
    >> Lepiej od razu:
    >>
    >> #define MOJ_ZNAK "\x01"
    >
    > Nie ma takiej potrzeby jeśli teksty są rozdzielone cudzysłowami.

    Jest, jeśli będzie chciał dać w tym #define. Może nie w tym przypadku,
    ale jeśli tego typu regułę zastosuje później w innym miejscu.

    --
    [ Artur M. Piwko : Pipen : AMP29-RIPE : RLU:100918 : From == Trap! : SIG:232B ]
    [ 08:07:26 user up 12244 days, 20:02, 1 user, load average: 0.90, 0.98, 0.59 ]

    If dolphins are so smart, why did Flipper work for television?


  • 13. Data: 2009-11-06 18:13:41
    Temat: Re: [Podstawy C] Inicjalizacja zmiennych CHAR wartością zależną od #define
    Od: "Pszemol" <P...@P...com>

    "Konop" <k...@g...pl> wrote in message
    news:hchdh2$10c$1@inews.gazeta.pl...
    >> Najprościej #define MOJ_ZNAK "\1"
    >> Teraz zadziała.
    >
    > Racja, dzięki za uwagi. Tego nie sprawdzałem z innego względu... część
    > znaków używam w ten sposób:
    > unsigned char ch;
    >
    > ch = MOJ_ZNAK;
    >
    > No i teraz to już nie działa :(... czyli wychodzi na to, że i tak muszę
    > mieć dwa define'y ;)... jeden do wstawiania do napisów, drugi do użycia
    > jako pojedynczy znak. Czy da się to może jakoś pogodzić??

    Da się.

    Masz

    #define MOJ_ZNAK "\1"

    I możesz potem zrobić tak:

    ch = MOJ_ZNAK[0];

    Zwróć uwagę że zapis "/1" w języku C oznacza faktycznie tablicę
    typu "const char[2]". Pierwszym znakiem jest /1 a drugim zero (ASCIIZ).
    Zapis ch = MOJ_ZNAK[0]; preprocesor rozwinie według Twojego #define
    i kompilator to zobaczy jako:

    ch = "/1"[0];

    i nie powinien mieć problemów, mimo iż to może dziwnie wyglądać :-)

    Zaletą takiego rozwiązania jest pojedynczy #define.

strony : 1 . [ 2 ]


Szukaj w grupach

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: