Skocz do zawartości

Ograniczenie widoczności typu wyliczeniowego


_LM_

Pomocna odpowiedź

Czy jest możliwość tak obudować typ wyliczeniowy aby był widoczny tylko w zakresie struktury, lub nowego powołanego typu danych? Np:

#include<stdio.h>

typedef struct { enum {aa,ii,dd}cci ;}cc_t;

int main() {
    printf("enum = %i", ii);
}

Chciałbym aby wartość "ii"(w ogóle to co znajduje się w enum) była widoczna tylko w zakresie typu cc_t, tymczasem program potrafi "printować wartość ii 

Link do komentarza
Share on other sites

7 minut temu, ethanak napisał:

Powiedz co chcesz osiągnąć

To że dostęp do enum miałby być tylko w momencie kiedy powołam nową zmienna typu cc_t, tak jak to jest ze zmiennymi kiedy są one umieszczane w strukturze czyli

#include<stdio.h>


typedef struct {
    
    char a;
    int b;
    enum {aa,ii,jj}ej;
    
}ax_t; // nowy typ

ax_t ax; // zmienna 

int main() {
ax.a = 'k'; // przypisanie
    printf("k = %i", ax.a); // 'a' jest widoczne tylko tylko przez odniesienie do ax
    printf("k = %i", ii);   // ii jest widoczne cały czas
}

a chcę to zrobić temu aby kiedy wybieram jakąś wartość z enuma była ona ściśle powiązana ze strukturą z której pochodzi. nie wiem jak to inaczej opisać

Link do komentarza
Share on other sites

C++ i enum w klasie (konkretniej klasa zamiast struktury i typedefa).

#include <stdio.h>

class cc_t {
    public:
    enum xx {
        aa,
        bb,
        cc};
    enum xx field;
};

cc_t element = {cc_t::bb};

int main(int argc, char *argv[])
{
    printf("%d\n",element.field);
}

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.