__VA_ARGS__
Bu macro bir GNU extension. Bir metoda istediğimiz kadar parametre geçmek için şöyle yaparız.
Bu macro bir GNU extension. Bir metoda istediğimiz kadar parametre geçmek için şöyle yaparız.
#define chkErr(FUNCTION, ...) \
if(!FUNCTION(__VA_ARGS__)) \
{ \
perror(#FUNCTION); \
}
Ancak bu kullanım hatalara sebep olabiliyor. Şöyle yapmak daha iyi.#define chkErr(FUNCTION, ARGUMENTS) \
do \
{ \
if(!FUNCTION ARGUMENTS) \
{ \
perror(#FUNCTION); \
} \
} \
while(0)
chkErr(someFunction,(12, 10));
// ^ (!)
Hiç yorum yok:
Yorum Gönder