C中的声明函数可以写成如下
void foo(){ printf("foo() was called\n"); }
我们把这个函数放在main()函数上面。 然后,我们可以调用这个函数,forinstance foo()。
#include <stdio.h>
//w w w. jav a 2 s . com
void foo(){
printf("foo() was called\n");
}
int main(int argc, const char* argv[]) {
foo();
return 0;
}
上面的代码生成以下结果。
我们还可以在main()函数的下面声明一个函数,但是我们必须声明我们的函数名。
#include <stdio.h>
/*from www. ja v a2 s . c om*/
// implicit declaration for functions
void boo();
int main(int argc, const char* argv[]) {
boo();
return 0;
}
void boo(){
printf("boo() was called\n");
}
上面的代码生成以下结果。
您可能需要创建一个具有参数和返回值的函数。
这很容易因为你只是调用return进入你的函数。
#include <stdio.h>
/*from w w w . j a v a2s .c o m*/
// implicit declaration for functions
int add(int a, int b);
int main(int argc, const char* argv[]) {
int result = add(10,5);
printf("result: %d\n",result);
return 0;
}
int add(int a, int b){
return a + b;
}
上面的代码生成以下结果。
我们也可以声明一个函数带有数组作为参数。
要知道数组大小,你的函数应声明数组大小。
将此代码写入程序以进行说明。
#include <stdio.h>
/* ww w.j ava 2s .com*/
// implicit declaration for functions
double mean(int numbers[],int size);
int main(int argc, const char* argv[]) {
int numbers[8] = {8,4,5,1,4,6,9,6};
double ret_mean = mean(numbers,8);
printf("mean: % .2f\n",ret_mean);
return 0;
}
double mean(int numbers[],int size){
int i, total = 0;
double temp;
for (i = 0; i < size; ++i){
total += numbers[i];
}
temp = (double)total / (double)size;
return temp;
}
上面的代码生成以下结果。
我们可以将指针作为参数传递给我们的函数。
为了说明,我们可以创建swap()交换我们的价值观。
#include <stdio.h>
/*w w w . ja va 2 s .c om*/
// implicit declaration for functions
void swap(int *px, int *py);
int main(int argc, const char* argv[]) {
int *x, *y;
int a, b;
a = 10;
b = 5;
// set value
x = &a;
y = &b;
printf("value pointer x: %d \n",*x);
printf("value pointer y : %d \n",*y);
swap(x,y);
printf("swap()\n");
printf("value pointer x: %d \n",*x);
printf("value pointer y : %d \n",*y);
return 0;
}
void swap(int *px, int *py){
int temp;
// store pointer px value to temp
temp = *px;
// set pointer px by py value
*px = *py;
// set pointer py by temp value
*py = temp;
}
上面的代码生成以下结果。