printf()中的任意数量的参数。 在C编程中这叫什么?

当我们使用不同数量的参数的printf()

 printf("Hello"); printf("%d",a); printf("%d%d",b,c); 

为什么这不称为“重载”(使用相同的方法执行不同的任务)? 如果它是重载,那么为什么C不被认为是面向对象的编程语言?

这称为可变函数 ,而不是过载。 重载与面向对象无关。

为什么这不称为“超载”

因为你使用相同的function

 int printf(const char *restrict format, ...); 

重载的一个先决条件是将不同的函数/方法命名为相同。 这里我们只有一个function ,尽管由于varargsfunction而非常通用。

这不是方法重载。 恰好printf接收一个可选的vargs作为第二个参数,即一个变量参数列表。

int printf(const char * format,…);

将格式化数据打印到stdout将格式化为format参数指定的数据序列写入标准输出(stdout)。 在format参数之后,该函数至少需要格式化中指定的其他参数。

面向对象编程是指包含封装,消息传递,inheritance和多态的范例。 换句话说,OO意味着定义具有被覆盖的 virtual函数的class 。 这与重载不同, 重载是基于参数的类型在函数中执行不同的动作。

printf()所做的不是重载也不是重写 。 它是一个可变长度的参数列表。