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()
所做的不是重载也不是重写 。 它是一个可变长度的参数列表。