【发布时间】:2014-02-11 12:04:49
【问题描述】:
在 C# 中,我们了解到当多个函数具有相同标识符但签名不同时,会发生函数重载。
虽然函数重载的概念是面向对象语言特有的,但根据以下观察,它是否也适用于C语言?
printf("%d", 3);
printf("%d + %d = %d", 1 , 2 , 3 );
第一个 printf 只传递两个参数。 第二个 printf 传递四个参数。
这是否意味着 printf 被重载了?
【问题讨论】:
-
仅供参考,函数重载并非特定于面向对象的语言。也许您正在考虑覆盖? C++ 有函数重载:
void foo(int)和void foo(char)可能都存在,调用哪一个取决于参数的类型。这独立于 C++ 的 OOP 工具,也可能存在于 C 中:) -
请将您的标题更改为更准确的名称。您的问题是关于重载而不是 OO 语言,不是吗?
-
C 函数可以声明为接受任意数量的参数。
printf*是这些功能之一。它的声明类似于printf( const char *format, ...)google Cva_list宏和stdarg.h
标签: c# c oop overloading