Rozważmy tę strukturę:Jak nazwać pola bez nazwy w strukturze C?
struct {
int a;
int _reserved_000_[2];
int b;
int _reserved_001_[12];
int c;
};
Zarezerwowane pola nie powinny być odczytywane lub zapisywane. Moja struktura reprezentuje deskryptor adresujący FPGA, gdzie mam wiele pól reserved
. Ostatecznie nazwałem je losowo, ponieważ po latach wstępna numeracja nic już nie znaczy.
Więc mam teraz:
struct {
int a;
int _reserved_3hjdds1_[2];
int b;
int _reserved_40iuljk_[12];
int c;
};
Byłoby wygodniej mieć zamiast tylko puste pola:
struct {
int a;
int;
int b;
int;
int c;
};
Ale to nie działa.
Jaką inną alternatywę mogę uniknąć znalezienia unikatowej nazwy dla pól reserved
?
Napisz generator kodu, za pomocą którego utworzysz deklaracje struktury. Pozwól mu tworzyć kolejno numerowane nazwy zarezerwowanych członków. Zwróćcie uwagę w szczególności, że nie ma znaczenia, czy nazwy zarezerwowanych członków ulegną zmianie, ponieważ nikt nie powinien mieć dostępu do tych członków. –
Masz na myśli coś takiego jak "zarezerwowany _ ## __COUNTER__' – nowox
Ponieważ nikt nie powinien używać zarezerwowanych pól, nie widzę, jak ważne jest to, czy początkowa numeracja rosnąco ma sens - jest używana tylko w celu uniknięcia nazw. Utknąłem z pierwszą wersją ... – Dmitri