相关疑难解决方法(0)

如何在C中实现函数重载?

有没有办法在C中实现函数重载?我正在寻找简单的函数来重载像

foo (int a)  
foo (char b)  
foo (float c , int d)
Run Code Online (Sandbox Code Playgroud)

我认为没有直接的方式; 我正在寻找解决方法,如果存在的话.

c overloading

234
推荐指数
12
解决办法
18万
查看次数

函数重载是否在C中工作?

可能重复:
C中的函数重载C
是否支持重载?

任何人都可以解释函数重载是否在C中工作?

我尝试过这个并没有用:

#include <stdio.h>

int f(int val) {
    printf("f int\n");
    return 5;
}

int f(char *val) {
    printf("f char *\n");
    return 6;
}

int main() {
    f(5);
    f("moo");
}
Run Code Online (Sandbox Code Playgroud)

gcc C编译器说:

overload.c:8: error: conflicting types for 'f'
overload.c:3: error: previous definition of 'f' was here
Run Code Online (Sandbox Code Playgroud)

但是,如果我在C++中编译相同的代码,它的工作原理.

有人能解释一下吗?

谢谢,Boda Cydo.

c overloading

3
推荐指数
1
解决办法
1036
查看次数

使用printf在C中重载方法?

可能重复:
printf的签名是什么?
C支持重载吗?
printf支持函数重载在C?

C的printf函数似乎显示方法重载,因为可以给它不同类型的参数.这是对的还是printf其他的?

c

2
推荐指数
2
解决办法
910
查看次数

printf支持函数重载在C?

可能重复:
C是否支持重载?

我想知道printf是否支持C中的函数重载,因为在一个C程序中可以以多种方式使用相同的printf函数.

c

1
推荐指数
1
解决办法
3203
查看次数

为什么 Linux C API 'open' 支持函数重载?

根据Linux 手册页,Linux C APIopen有两个原型如下:

int open(const char *pathname, int oflags);
int open(const char *pathname, int oflags, mode_t mode);
Run Code Online (Sandbox Code Playgroud)

让我困惑的是:

为什么 Linux C API 'open' 支持函数重载??

c linux api overloading

1
推荐指数
1
解决办法
276
查看次数

标签 统计

c ×5

overloading ×3

api ×1

linux ×1