C 语言是否能用变长参数来实现函数重载

【C 语言是否能用变长参数来实现函数重载】 C11 可以这么做,adds 里的 res 内存没释放
#include \u0026lt;stdio.h\u0026gt;#include \u0026lt;stdlib.h\u0026gt;#include \u0026lt;string.h\u0026gt;int addi(int a, int b) { return a + b;}char *adds(char *a, char *b) { char *res = malloc(strlen(a) + strlen(b) + 1); strcpy(res, a); strcat(res, b); return res;}#define add(a, b) _Generic(a, int: addi, char*: adds)(a, b)int main(void) { int a = 1, b = 2; printf("%d\", add(a, b)); // 3 char *c = "hello ", *d = "world"; printf("%s\", add(c, d)); // hello world return 0;}
■网友
\u0026gt; OpenGL那样定义接口的方法有什么不妥?你猜猜看叫做 glUniform* 的有多少个方法?
■网友
double foo(int);int foo(double);
■网友
No
■网友
如果只需要改参数类型,1.改函数名,加上宏定义。2.用联合,不过需要指定参数类型如果要改参数个数,那就用变长参数了,不过也需要指定参数类型和个数
■网友
google 一下,你就知道function overloading in C
■网友
scanf/printf


    推荐阅读