Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

#define (sizeof structname)

[es] :: C/C++ programiranje :: C/C++ za početnike :: #define (sizeof structname)

[ Pregleda: 1477 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

aleksazr
zrenjanin

Član broj: 196784
Poruke: 244
*.opera-mini.net.



+11 Profil

icon #define (sizeof structname)11.08.2010. u 21:04 - pre 133 meseci
Recimo da imam ovakvu strukturu:

Code:

typedef struct {
  ...
  ...
} PROBA, *pPROBA;


Zelim da, koristeci
Code:

structsize(PROBA)


dobijem:
Code:

#define sPROBA (sizeof (PROBA))


Napravio sam macro
Code:

#define structsize(structname) #define s##structname (sizeof (structname))



Kompajler se tu buni (expected macro formal parameter)
kao da mu smeta #define unutar prethodnog #define pa sam prepravio na
Code:

#define define #define
#define structsize(structname) define s##structname (sizeof (structname))


ali i dalje mu ne odgovara. Gde gresim?
CYRfree 2.0.5 - ako bi ćirilicu radije čitali kao latinicu.
Serbian Latin keyboard layout 12-01-2019 - raspored za većinu QWERTY tastatura sa našeg tržišta.
http://users.beotel.net/~gwh/
 
Odgovor na temu

aleksazr
zrenjanin

Član broj: 196784
Poruke: 244
*.opera-mini.net.



+11 Profil

icon Re: #define (sizeof structname)11.08.2010. u 21:18 - pre 133 meseci
A ne bi bilo lose ni imati ovako nesto

Code:

#define BEGINstruct typedef struct {
#define ENDstruct(structname) } structname, *p##structname; define s##structname (sizeof (structname))

BEGINstruct
  int minX, maxX;
ENDstruct(PROBA)

pa da dobijem

typedef struct {
  int minX, maxX;
} PROBA, *pPROBA;
#define sPROBA (sizeof (structname))


ali ni ovo ne radi..
CYRfree 2.0.5 - ako bi ćirilicu radije čitali kao latinicu.
Serbian Latin keyboard layout 12-01-2019 - raspored za većinu QWERTY tastatura sa našeg tržišta.
http://users.beotel.net/~gwh/
 
Odgovor na temu

Mihajlo Cvetanović
Beograd

Moderator
Član broj: 37636
Poruke: 1236



+93 Profil

icon Re: #define (sizeof structname)11.08.2010. u 21:59 - pre 133 meseci
Ne može jedan define unutar drugog, niti bilo koja druga preprocesorska direktiva. Mislim da ne može to kako ti hoćeš, i verovatno je najjednostavnije da prosto koristiš sizeof(PROBA) svuda gde je to potrebno.
 
Odgovor na temu

aleksazr
zrenjanin

Član broj: 196784
Poruke: 244
*.opera-mini.net.



+11 Profil

icon Re: #define (sizeof structname)12.08.2010. u 08:59 - pre 133 meseci
E ovaj C stvarno zna da omane na najjednostavnijim stvarima!

Dobro, BEGINstruct i ENDstruct mogu da rade, samo bez sizeof dodatka.
A to mora onda posle kao
#define sPROBA (sizeof (PROBA))
CYRfree 2.0.5 - ako bi ćirilicu radije čitali kao latinicu.
Serbian Latin keyboard layout 12-01-2019 - raspored za većinu QWERTY tastatura sa našeg tržišta.
http://users.beotel.net/~gwh/
 
Odgovor na temu

[es] :: C/C++ programiranje :: C/C++ za početnike :: #define (sizeof structname)

[ Pregleda: 1477 | Odgovora: 3 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.