c - using #defines and passing functions to them -


gcc 4.4.2 c89

I re-engineer some code in c89. However, I am completely confused with the code which defines the following #. So I have created a small application, maybe I understand how it is working.

What I can collect MODULE_API will pass the function name and the macro will call MODULE_SOURCE_API and open the name and function. So I created a simple function called print_name and ran the code. I have received the following error message:

  The underlying declaration of the function 'print_name' is the undefined reference to 'print_name'  

What would be the main reason for doing this?

  #include & lt; Stdio.h & gt; #define MODULE_SOURCE_API (name, func) name ## _ ## func #define MODULE_API (func) MODULE_SOURCE_API (mod_print, func) ZERO MODULE_API (print_name) (CONSTORE FOUR CONST * name); Int main (zero) {printf ("=== Start the program === \ n"); Print_name ("Blogs"); Printf ("== Program End === \ n"); Return 0; } Zero MODULE_API (print_name) (const four console * name) {printf ("my name is [% s] \ n", name); }  

Many thanks for any advice,

Edit ==== I have made a correction which I should call

< Pre> MODULE_API (print_name) ("blogs");

But how do I get involved, how can I print it? And what is the reason for doing this?

Many thanks,

  #define MODULE_SOURCE_API (name, function) Name ##_## function #define MODULE_API (func) MODULE_SOURCE_API (mod_print, func) Zero MODULE_API (print_name) (Const four contact * names);   

This will produce the mod_print_print_name function instead of print_name

You can see it on the GCC

gcc-e ak.c

  / * ...... * / Zero mod_print_print_name (const four contact * names); Int main (zero) {printf ("=== Start the program === \ n"); Print_name ("Blogs"); Printf ("== Program End === \ n"); Return 0; } Zero mod_print_print_name (const four const * name) {printf ("my name is [% s] \ n", name); }  

Comments

Popular posts from this blog

oracle - The fastest way to check if some records in a database table? -

php - multilevel menu with multilevel array -

jQuery UI: Datepicker month format -