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

Makroi sa variabilnom listom argumenata - How to?

[es] :: C/C++ programiranje :: Makroi sa variabilnom listom argumenata - How to?

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

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

freediver
freediver

Član broj: 33806
Poruke: 55
*.yubc.net

Sajt: www.prelovac.com


+1 Profil

icon Makroi sa variabilnom listom argumenata - How to?09.09.2004. u 13:10 - pre 238 meseci
Hocu da uradim sledecu stvar:

Imam funkciju
void DE_Handler(char *filename, int line, int code, const char *fmt, ...)


i hocu da napravim makro slican ovom

#define DEBUG(arg) DE_Handler(__FILE__, __LINE__, DE_DEBUG, arg)


tj da mogu da kazem u kodu:

DEBUG("This is a %s", "test");


E sad malo sam ceprkao oko ovoga i otrkio da C standard od '99 podrzava variabilnu listu argumenta za makroe:

#define myprintf(...) printf(__VA_ARGS__)

ili u mom slucaju:

#define DEBUG(...) DE_Handler(__FILE__, __LINE__, DE_DEBUG, __VA_ARGS__)


Problem je sto ovo radi na gcc-u a meni treba da radi u .NET-u pod windowsom. Izgleda da je Microsoft zaboravio da ukljuci ovaj standard?

Da li neko zna za resenje ovog problema?

Hvala unapred


Prelovac Media is hiring
 
Odgovor na temu

blaza
n/a

Član broj: 961
Poruke: 743
*.vdial.verat.net



+3 Profil

icon Re: Makroi sa variabilnom listom argumenata - How to?09.09.2004. u 16:02 - pre 238 meseci
Najbezbolnije resenje je:
Code:

#define DEBUG DE_Handler(__FILE__, __LINE__, DE_DEBUG,

Ovaj makro mozes koristiti ovako:
Code:

DEBUG "Hello!");
DEBUG "This is %s", "test");

O_o
 
Odgovor na temu

freediver
freediver

Član broj: 33806
Poruke: 55
*.yubc.net

Sajt: www.prelovac.com


+1 Profil

icon Re: Makroi sa variabilnom listom argumenata - How to?10.09.2004. u 08:50 - pre 238 meseci
Hvala, zanimljiva ideja ;)

Ipak zanima me da li ima jos neko resenje?


Prelovac Media is hiring
 
Odgovor na temu

yooyo

Član broj: 4891
Poruke: 1101
*.nat-pool.bgd.sbb.co.yu



Profil

icon Re: Makroi sa variabilnom listom argumenata - How to?13.09.2004. u 21:42 - pre 238 meseci
Moze i na ovaj nacin...

#define LOGH(a) printf("\n%s: %d - ", __FILE__, __LINE__); printf a;

int main(int argc, char* argv[])
{
LOGH(("Test %d i %d i string %s\n", 12, 15, "Tralalala"));
return 0;
}

Primer daje na izlazu:
d:\!_net\makro\makro.cpp: 5 - Test 12 i 15 i string Tralalala


yooyo
 
Odgovor na temu

[es] :: C/C++ programiranje :: Makroi sa variabilnom listom argumenata - How to?

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

Postavi temu Odgovori

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