有没有办法在C中实现函数重载?我看到的是一些简单的重载函数,比如

foo (int a)  
foo (char b)  
foo (float c , int d)

我认为没有直截了当的道路;我正在寻找解决办法,如果有的话.

推荐答案

几乎没有可能:

  1. printf样式函数(作为参数键入)
  2. opengl风格的函数(键入函数名)
  3. C++的子集(如果你可以使用C++编译器)

C++相关问答推荐

C中char数组指针的问题

在x86汇编中,为什么当分子来自RDRAND时DIV会引发异常?

为什么这个select()会阻止?

try 使用sigqueue函数将指向 struct 体的指针数据传递到信号处理程序,使用siginfo_t struct 体从一个进程传递到另一个进程

为什么getchar()挂起了,尽管poll()返回了一个好的值?""

C指针算法在函数参数中的应用

丑陋的三重间接:可扩展的缓冲区管理 struct

堆栈在作用域阻塞后会被释放吗?

我的程序在收到SIGUSR1信号以从PAUSE()继续程序时总是崩溃()

是什么让numpy.sum比优化的(自动矢量化的)C循环更快?

struct -未知大小

如何在C中打印包含扫描字符和整数的语句?

为什么指针运算会产生错误的结果?

为什么Fread()函数会读取内容,然后光标会跳到随机位置?

从C中的函数返回静态字符串是不是一种糟糕的做法?

Makefile无法将代码刷新到ATmega328p

使用 _Atomic float 时,MSVC 编译的代码会命中调试断言

为什么 Linux 共享库 .so 在内存中可能比在磁盘上大?

与 C 相比,C++ 中无副作用的无限循环的好处是 UB?

如何使用 raylib 显示数组中的图像