Pokrewne
menu      zlacze DVI pojedyncza a podwojne
menu      Nietypowy wtyk - podwojny zasialjacy
menu      Płatności bez pokrycia, Maroko, phishing i proxy
menu      Brak menu i menadżera dodatków
menu      czy da sie kupic LCD 6x1 albo 8x1 ?
menu      [redhat] Problem z zainstalowaniem MC
menu      Instalacja phpBB
menu      Wymiana wzmacniacza
menu      Z webmin na VHCS?
menu      jak wyglada procedura wymiany wadliwych dysków?
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • chude.opx.pl
  • Podwójny podkreślnik w C





    Kacper - 20-09-2006 11:45
    Podwójny podkreślnik w C
      WItam

    Spotkałem się z tym już wcześniej ale w plikach bibliotek AVR GCC a teraz
    także w opisach jakichś dyrektyw dla kompilatora.
    O co tu chodzi? Do czego służy dlaczego się ich używa.
    Teraz znalazłem to w forum EP.
    Poniżej treść postu w którym wyjaśniane jest zagłębianie includów.
    Gościu pisze w pierwszej części jak się nie robi i dlaczego a potem poprawia
    z użyciem IFNDEF ale już z podkreślnikami.

    Rafał

    zrób prosze mały teścik:

    potrzeba trzy pliki:
    jeden.h napisał:

    #include "dwa.h"
    #define CONST_JEDEN 0x1234

    dwa.h napisał:

    #include "jeden.h"
    #define CONST_DWA 0x1234

    hello.c napisał:

    #include "jeden.h"
    #include "dwa.h"
    //.....
    unsigned short v1 = CONST_JEDEN;
    unsigned short v2 = CONST_DWA;

    gdy te pliki *.h opatrzysz wspomnianymi dyrektywami, podczas kompilacji
    po pierwszym napotkaniu danego symbolu, zostanie przyjęte, że on już jest
    zdefiniowany
    i przy drugim wczytaniu takiego pliku *.h zostanie on przetworzony inaczej
    (zawartość będzie pominięta)
    ponieważ tak każą instrukcje ifndef/endif

    jeden.h napisał:

    #ifndef __JEDEN_H__
    #define __JEDEN_H__

    #include "dwa.h"
    #define CONST_JEDEN 0x1234

    #endif // __JEDEN_H__

    dwa.h napisał:

    #ifndef __DWA_H__
    #define __DWA_H__

    #include "jeden.h"
    #define CONST_DWA 0x1234

    #endif // __DWA_H__

    hello.c napisał:

    #include "jeden.h"
    #include "dwa.h"
    //.....
    unsigned short v1 = CONST_JEDEN;
    unsigned short v2 = CONST_DWA;





    mk - 20-09-2006 12:45

      Newsuser "Kacper" wrote:
    > WItam
    >
    > Spotkałem się z tym już wcześniej ale w plikach bibliotek AVR GCC a teraz
    > także w opisach jakichś dyrektyw dla kompilatora.
    > O co tu chodzi? Do czego służy dlaczego się ich używa.

    Dyrektywa kompilatora jest instrukcją skierowaną do kompilatora by
    zachowywał się w jakiś szczególny sposób. Jaki? To już zależy od tego jaka
    to dyrektywa. Np. dzięki dyrektywom można zmusić kompilator, by dla danego
    fragmentu kodu kompilator nie generował ostrzeżeń w czasie kompilacji.

    > Teraz znalazłem to w forum EP.
    > Poniżej treść postu w którym wyjaśniane jest zagłębianie includów.
    > Gościu pisze w pierwszej części jak się nie robi i dlaczego a potem
    > poprawia
    > z użyciem IFNDEF ale już z podkreślnikami.

    Powinienieś traktować nazwę zaczynającą się od "__" jak każdą inną nazwę, z
    tym że...
    Użycie podwójnego podkreślenia w takim zastosowaniu jest złą praktyką!
    Identyfikatory zaczynające się od dwóch podkreśleń zarezerwowane są dla
    danej implementacji kompilatora. Nie należy wprowadzać nowych nazw
    zaczynających się od "__", by nie doprowadzić do kolizji nazw.

    pzdr
    mk
  • zanotowane.pl
  • doc.pisz.pl
  • pdf.pisz.pl
  • konstruktor.keep.pl
  • Design by flankerds.com