void abcd(int,char); void main() { extern void abcd(char); abcd (q); }
是否可以实现这样的代码?C将如何允许我们这样编码?函数调用abcd()会将’q’作为char还是整数?
void abcd_c(char x){}; void abcd_i(int x){}; int main(int argc,char *argv[]) { #define abcd abcd_c abcd('t'); abcd('e'); abcd('s'); abcd('t'); #undef abcd #define abcd abcd_i abcd(123); #undef abcd }
您只需使用#define / #undef在部分代码中选择想要的行为