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
推荐阅读
- 傻子当国有银行行长都能赚钱这句话是否是对的
- OC为何跌出语言榜前十
- 网通社|喜欢蔚来的越来越多了 连续四个月交付创新高 你是否愿意放弃特斯拉选择它?
- dart这编程语言现在发展怎么样了,语法与Java,c#很相似,甚至更简洁
- 电视盒子能用代理吗
- 人民车市|新语言、新起点,捷达VS7 强势入局
- 豆瓣为啥受到同志社群的欢迎
- |PHEV车款没比较环保,新能源是否存在谎言呢?
- 能否推荐一个能用快播看电影且电影都是中英双字幕的网站
- 为啥亚马逊说kindle paperwhite可以续航几周,到我这只能用2、3天