如果一定要说哪段C语言代码最“著名”,我想非“hello world”莫属了。大多数初学者人生中编写的第一段C语言代码就是这段“里程碑”式的代码:
#include
int main()
{
printf("hello world\n");
return 0;}
也正因为这段著名的程序,printf() 函数成为大多数C语言初学者接触到的第一个标准库函数。
“里程碑”式的代码
C语言中的可变参数函数
随着学习的推进,初学者逐步学会调用别的C语言函数,以及定义自己的函数,观察力敏锐的会注意到 printf() 函数似乎与其他函数不太一样——printf()函数没有固定数目的参数,它似乎可以接收任意多的参数。
而其他C语言函数则不同,它们大都有固定数量的参数(0个,3个等),调用这些函数必须传递对应数目的参数。
有些持有“特殊论”的初学者认为像 printf() 这样的“可变参数”函数是“特殊的”,是系统定义的,我们程序员只能定义固定参数的函数,其实不是的,C语言是有手段定义自己“可变参数”函数的。
printf() 究竟是不是只能由系统定义的“特殊”函数呢?
怎样定义自己的可变参数函数?
事实上,标准库 就是方便C语言程序员定义自己的“可变参数”函数的。如果读者和我一样使用的是 Linux 系统