打印本文 关闭窗口 | |
C语言入门教程-函数来源于瑞达科技网 | |
作者:佚名 文章来源:网络 点击数 更新时间:2011/1/18 文章录入:瑞达 责任编辑:瑞达科技 | |
|
|
函数 大多数编程语言都支持定义某种形式的函数。使用函数可以将一个大程序分解为小的代码块并分别命名,然后这些命名的代码块就可以在整个程序中重复使用了。函数输入参数并返回一个结果。C函数可以输入的参数个数没有限制。一般来说,对于编译器而言,只要在调用函数以前事先声明函数名称,则各函数在程序中的顺序并不重要。 我们已经讨论过一些有关函数的内容了。前面遇到的rand函数几乎是最简单的函数了。它不接受参数并返回一个整数: int rand() int rand()这些程序定义了rand函数,还指明rand没有输入参数并返回一个整数。此函数没有局部变量,但如果需要的话,局部变量会紧接着打开的{开始。(C 允许您在任何 { 后面声明变量,这些变量一直存在,直到程序执行至那个匹配的 } 为止,此后即不复存在。因此函数的局部变量在遇到函数中匹配的 } 时就消失了。在其生存周期内,局部变量被保存在系统栈上。)请注意第一行的()后面没有;。您若不小心加上了分号,编译器会给出一大堆莫名其妙的错误信息。另外还要注意即使当函数没有参数时也要使用()。括号告诉编译器您在声明一个函数而不是简单地声明一个int类型。 对于任何要返回结果的函数来说,return语句是不可或缺的。它指明函数要返回的值并使函数立即退出。因此您可以在函数中放置多个return语句作为函数的多个退出点。若函数中没有return语句,则函数在执行到 } 时退出并返回一个随机值(这时很多编译器会发出警告)。C中的函数可以返回任何类型的值:包括int、float、char、结构体等等。 调用rand函数的方式有许多种。例如:x=rand();。此语句中x被赋值为rand的返回值。注意,在函数调用中即使没有参数也必须使用(),否则x将被赋值为rand函数的内存地址,而这通常并非您的本意。 也可以用这种方式调用rand: if (rand() > 100) 或: rand(); 后一种方式中,rand函数被调用了,可是其返回值随即被丢弃。您可能不会以这种方式使用rand,但很多函数会返回某种错误代码作为调用结果,而您又不关心这些错误代码的话(如您知道不可能发生错误),就可以用这种调用方式将其丢弃。 如果您不想返回任何值的话,函数可以使用void作为返回类型。例如: void print_header() 此函数没有返回值。可以像下面这样调用: print_header(); 调用时必须加上(),否则函数不会被调用,即使此语句在很多系统上能通过编译。 C函数可以接受任何类型的参数。例如: fact(int i) 返回传入的整型参数i的阶乘。用逗号分隔多个参数: int add (int i, int j) C语言经历了许多年的演变。有时您会看到用“旧式风格”编写的函数。以add为例: int add(i,j) 您应该能够读懂旧式代码。它们在执行上并无不同,只不过是另一种书写格式罢了。编写程序时应该使用“新式风格”(称为ANSI C),把类型声明写在参数列表中;除非您要把代码交付给只有“旧式”(非ANSI C)编译器的人。 |
|
打印本文 关闭窗口 |