![]() |
what does _ARGS_ mean in C
Hi All,
I came across this piece of code where the function declaration was like this Code:
return_t mtp3_init _ARGS_((mtp3_init_opt_t *, error_t *));The function definition looks like this. Code:
return_t mtp3_init |
Re: what does _ARGS_ mean in C
_ARGS_ is used to pass arguments into a func, in a generic way.
This is used here to allow non-ANSI as well as ANSI C compilers to compile the program successfully. Old non-ANSI C style functions were defined like : Code: C
But ANSI C uses the following style : Code: C
So, what exactly is done here is, no specific style is adopted, rather the arguments are passed in a generic method by using _ARGS_. Then using the #ifdef, we check if ANSI style can be used. If so, we define the func in ANSI C style using the arguments passed through _ARGS_, else we define the func in non-ANSI C style using the arguments passed through _ARGS_. :) |
Re: what does _ARGS_ mean in C
Ok now i get it thanks a lot :)
|
Re: what does _ARGS_ mean in C
My pleasure :)
|
Re: what does _ARGS_ mean in C
hey SaswatPadhi
can you give my an example of how you would have written that a+b example using _ARGS_ i am still not clear with the syntax... thanks... |
Re: what does _ARGS_ mean in C
(First of all, note that you have to define the _ARGS_ macro and ANSI_PROTO yourself. It's not predefined.)
Now, you can define the sum function this way : Declaration : Code: C
Definition : Code: C
I hope it's clear to you now. :) |
Re: what does _ARGS_ mean in C
ah so if on a compiler which is ansi, it will replace the code with standard arguments style
else it will replace it with old fashioned way.... as its a "macro" neat... thanks... do people actually use it? professionally? |
Re: what does _ARGS_ mean in C
Yeah, I have seen numerous applications of this macro. (And yes, professionally.)
The code mentioned in the first post of this thread, I think is for some kind of signaling. (I guess that from mtp3. MTP3 = Message Transfer Protocol 3) |
| All times are GMT +5.5. The time now is 14:00. |