1. 如果函數沒有聲明, 應該在調用前定義:
#include <stdio.h>
/* 定義求大值函數 */
int MAX(int x, int y) {
if (x > y)
return x;
else
return y;
}
/* 定義求小值函數 */
int MIN(int x, int y) {
return x < y ? x : y;
}
int main(void)
{
int a = 5;
int b = 6;
/* 調用函數 */
printf("%d\n", MAX(a,b));
printf("%d\n", MIN(a,b));
getchar();
return 0;
}
2. 可以在函數頭聲明:
#include <stdio.h>
int main(void)
{
int a = 5;
int b = 6;
/* 在函數頭聲明要使用的函數 */
int MAX(int x, int y);
int MIN(int x, int y);
/* 調用函數 */
printf("%d\n", MAX(a,b));
printf("%d\n", MIN(a,b));
getchar();
return 0;
}
/* 定義求大值函數 */
int MAX(int x, int y) {
if (x > y)
return x;
else
return y;
}
/* 定義求小值函數 */
int MIN(int x, int y) {
return x < y ? x : y;
}
3. 但一般應在文件頭聲明:
函數原型的聲明在實際運用中, 會集中聲明在頭文件(*.h)裡面.
#include <stdio.h>
/* 在文件頭聲明要使用的函數 */
int MAX(int x, int y);
int MIN(int x, int y);
int main(void)
{
int a = 5;
int b = 6;
/* 調用函數 */
printf("%d\n", MAX(a,b));
printf("%d\n", MIN(a,b));
getchar();
return 0;
}
/* 定義求大值函數 */
int MAX(int x, int y) {
if (x > y)
return x;
else
return y;
}
/* 定義求小值函數 */
int MIN(int x, int y) {
return x < y ? x : y;
}
4. 函數可互調用, 但不能嵌套:
#include <stdio.h>
void PrintSum(int x, int y);
int sum(int x, int y);
int main(void)
{
PrintSum(1,2);
PrintSum(111,222);
getchar();
return 0;
}
void PrintSum(int x, int y) {
printf("%d + %d = %d;", x, y, sum(x,y));
putchar('\n');
}
int sum(int x, int y) {
return x + y;
}
5. 關於無參數、無返回值的函數:
如果函數沒有參數, 最好是 fun(void), 不過 fun() 也行;
如果函數沒有返回值, 要注明返回類型是 void;
在 C 語言中調用無參函數也要帶括號.
#include <stdio.h>
void prn(void);
int main(void)
{
prn(); /* 調用無參函數 */
getchar();
return 0;
}
void prn(void) {
printf("ok\n");
}
6. 聲明函數時可以省略形參:
#include <stdio.h>
int sum(int, int, int); /* 省略形式參數 */
int main(void)
{
printf("%d\n", sum(1,2,3));
getchar();
return 0;
}
int sum(int x, int y, int z)
{
return(x + y + z);
}
7. 函數的參數一般不要超過 7 個:
但 C99 可以支持到 127 個參數.
#include <stdio.h>
int sum(int, int, int, int, int, int, int);
int main(void)
{
printf("%d\n", sum(1,2,3,4,5,6,7));
getchar();
return 0;
}
int sum(int a, int b, int c, int d, int e, int f, int g)
{
return(a + b + c + d + e + f + g);
}
返回“學點C語言 - 目錄”