I'm wondering if I'm using variadic macros to create a function with default arguments, how should I add the prototype of this function to the interface header file So that I hide the base function from the user.
#define Enable_Asynchronous_Clock(...) Enable_Asynchronous_Clock_Base((struct Asynch_Args){.tcnt=0,.tccr=0,.ocr=0, __VA_ARGS__})
struct Asynch_Args{ u8 tcnt;u8 tccr;u8 ocr;};
void Enable_Asynchronous_Clock_Base(struct Asynch_Args argv){
//////
}
Is it even possible to add a prototype for this "Enable_Asynchronous_Clock(...)" or not.
At first, I thought of making it as a normal function with if/elifs that will at the end call the base function, But I came across this method and wanted to experiment with it a little.