功能
大多数语言允许您创建某种功能。功能让你砍了一个长节目为命名部分,部分可以在整个项目中重用。函数接受参数和返回一个结果。C函数可以接受任意数量的参数。一般来说,C不在乎什么顺序你把你的功能在程序中,只要知道函数名调用编译器之前。
我们已经谈到过一些功能。的兰德函数前面看到的是简单的一个函数。它不接受参数并返回一个整数的结果:
广告
int rand () / * k和r -产生0到32767之间的一个随机数。* / {rand_seed = rand_seed * 1103515245 + 12345;返回(unsigned int) (rand_seed / 65536) % 32768;}
的int rand ()行声明了函数兰德其余的程序和规定,兰德将不接受参数并返回一个整数的结果。这个函数没有局部变量,但如果它需要当地人,他们会在开幕{任何后(C允许您声明变量{——他们存在直到程序达到匹配}然后消失。一个函数的局部变量因此消失一旦匹配}达到的功能。当他们存在,局部变量在堆栈系统)。注意,没有;后()在第一行。如果你不小心把一个放进去,你会得到一个巨大的瀑布从编译器错误消息,毫无意义。还要注意,即使没有参数,你必须使用()。他们告诉编译器,你声明一个函数而不是简单地声明一个int。
的返回声明任何函数,返回一个结果是很重要的。它指定了值函数将返回并立即退出函数。这意味着您可以将多个函数中的返回语句给它多个出口点。如果你不把一个函数返回语句,函数返回当它到达}并返回一个随机值(许多编译器会提醒你如果你不返回一个特定的值)。在C语言中,函数可以返回值的类型:int,浮动,char、结构体等。
有几个正确的方法调用兰德函数。例如:x = rand ();。的变量x被分配在这个声明中兰德所返回的值。请注意,您必须使用()在函数调用,即使没有参数传递。否则,x兰德函数的内存地址,通常是你所不允许的。
你也可以叫兰德:
如果(rand () > 100)
或:
rand ();
在后一种情况下,函数被调用,但兰德所返回的值就会被丢弃。与兰德你可能再也不想这样做,但是很多函数返回的错误代码通过函数名,如果你不关心错误代码(例如,因为你知道,一个错误是不可能的),你可以以这种方式丢弃它。
函数可以使用如果你什么都不打算返回void返回类型。例如:
空白print_header () {printf(1号”计划\ n”);printf(“马歇尔大脑\ n”);printf(" 12/26/91发布1.0版本\ n ");}
这个函数不返回任何值。你可以叫它用下面的语句:
print_header ();
你必须包括()在调用。如果你不这样做,函数是不叫的,即使它将在许多系统正确编译。
C函数可以接受任何类型的参数。例如:
int事实(int i) {int j, k;j = 1;(k = 2;k < =我;k + +) j = * k;返回j;}
返回的阶乘我,这是作为一个整数参数传递。单独的多个参数用逗号:
int (int, int j){添加返回我+ j;}
C已经发展多年来。你有时会看到等功能添加写在“旧式”,如下所示:18新利最新登入
int添加(i, j) int我;int j;{返回我+ j;}
重要的是能读懂代码写在旧风格。没有区别的方式执行;它只是一个不同的符号。您应该使用(称为“新风格”ANSI C)声明为类型参数列表的一部分,除非你知道你将发货人的代码访问只有一个“旧式”(non-ANSI)编译器。