函數(shù)是用戶與程序的接口,在定義一個(gè)函數(shù)前,首先要清楚以下三個(gè)問題。1) 函數(shù)的功能實(shí)現(xiàn)及算法選擇。算法選擇會(huì)在后續(xù)文章詳細(xì)講解,本節(jié)重點(diǎn)關(guān)注函數(shù)的功能實(shí)現(xiàn)。一般選取能體現(xiàn)函數(shù)功能的函數(shù)名,且見名知意,如求和函數(shù)的函數(shù)名可取為 add,求最大值的函數(shù)名可取為 max,排序函數(shù)可取名為 sort 等。2) 需要用戶傳給該函數(shù)哪些參數(shù)、什么類型,即函數(shù)參數(shù)。3) 函數(shù)執(zhí)行完后返回給調(diào)用者的參數(shù)及類型,即函數(shù)返回值類型。 函教定義格式 函數(shù)定義的一般格式為: 返回類型 函數(shù)名 (類型參數(shù)1,類型參數(shù)2,…) {函數(shù)體 }也可以不含參數(shù),不含參數(shù)時(shí),參數(shù)表中可寫關(guān)鍵字 void 或省略,為規(guī)范起見,教程中對(duì)沒有參數(shù)的函數(shù),參數(shù)表中統(tǒng)一寫 void。例如: 類型 函數(shù)名 () {函數(shù)體 }等價(jià)于: 類型 函數(shù)名 (void) //建議的書寫方式 {函數(shù)體 } 如果該函數(shù)沒有返回類型,則為 void 類型。例如: void add (int x,int y) {printf ("sum=%d\n", x+y); } 除了 void 類型外,在函數(shù)體中,均需要顯式使用 return 語(yǔ)句返回對(duì)應(yīng)的表達(dá)式的值。 函教返回值 函數(shù)的值是指調(diào)用函數(shù)結(jié)束時(shí),執(zhí)行函數(shù)體所得并返回給主調(diào)函數(shù)的值。 關(guān)于函數(shù)返回值說明如下。1) 帶返回值的函數(shù),其值一般使用 return 語(yǔ)句返回給調(diào)用者。其格式為: return 表達(dá)式;或者 return (表達(dá)式);例如: int add (int a, int b) {return (a + b); //return 后為表達(dá)式 } 函數(shù)可以含一個(gè)或多個(gè) return 語(yǔ)句,但每次調(diào)用時(shí)只能執(zhí)行其中一個(gè) return 語(yǔ)句。例如,求整數(shù)絕對(duì)值的函數(shù): int f (int n) //含多個(gè)return語(yǔ)句,但每次調(diào)用只執(zhí)行一個(gè) {if (n = 0)return n;elsereturn -n; }
創(chuàng)新互聯(lián)建站成立于2013年,我們提供高端網(wǎng)站建設(shè)、網(wǎng)站制作公司、成都網(wǎng)站設(shè)計(jì)、網(wǎng)站定制、營(yíng)銷型網(wǎng)站建設(shè)、微信小程序開發(fā)、微信公眾號(hào)開發(fā)、seo優(yōu)化服務(wù),提供專業(yè)營(yíng)銷思路、內(nèi)容策劃、視覺設(shè)計(jì)、程序開發(fā)來完成項(xiàng)目落地,為成都汽車玻璃修復(fù)企業(yè)提供源源不斷的流量和訂單咨詢。
在使用一個(gè)函數(shù)之前必須先對(duì)他進(jìn)行聲明:
//void B();聲明B函數(shù)的存在。void A(){B();//非法,程序執(zhí)行到此時(shí)并不知道B函數(shù)的存在。}void B(){}
或者
#include stdio.h
#include stdlib.h
#include math.h
int fa(int n)
{
int a;
for(a=2;a=sqrt(n*1.0),n%a!=0;a++);
if(asqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",n);
擴(kuò)展資料
#include stdio.h
#include stdlib.h
#include math.h
int fa(int n)
{
int a;
for(a=2;a=sqrt(n*1.0),n%a!=0;a++);
if(asqrt(n*1.0))
return(1);
else
return(0);
}
void main( )
{
int n,q;
scanf("%d",n);
if(fa(n)==1)
printf("n");
else
printf("y");
system("pause");
exit(0);
}
參考資料:百度百科 - C語(yǔ)言函數(shù)
C語(yǔ)言調(diào)用函數(shù)就是先定義并聲明函數(shù),之后再根據(jù)定義函數(shù)的格式調(diào)用。
下面舉例來說明函數(shù)調(diào)用方法:
#includestdio.h
int fun(in t x, int y); // 函數(shù)聲明,如果函數(shù)寫在被調(diào)用處之前,可以不用聲明
void main()
{
int a=1, b=2, c;
c = fun(a, b); // 函數(shù)的調(diào)用,調(diào)用自定義函數(shù)fun,其中a,b為實(shí)際參數(shù),傳遞給被調(diào)用函數(shù)的輸入值
}
// 自定義函數(shù)fun
int fun(int x, int y) // 函數(shù)首部
{ // {}中的語(yǔ)言為函數(shù)體
return xy ? x : y; // 返回x和y中較大的一個(gè)數(shù)
}
分類: 電腦/網(wǎng)絡(luò) 程序設(shè)計(jì) 其他編程語(yǔ)言
問題描述:
如題,比如我建了兩個(gè)C源文件
A1.C 和 A2.c
我把一個(gè)自字義函數(shù)寫在A2.c里面,然后在A1.c里面調(diào)用它
1,A1.c要怎樣調(diào)用?
2,A2.c里面要怎樣寫?只寫一個(gè)自定義函數(shù)就可以了嗎?
解析:
有兩種方法:
1。在A2.c中有完整的函數(shù)定義,在A1.c中添加一下要用到的函數(shù)原型就可以了,例如:
在A2.c中:有函數(shù)void A2(){...};
在A1.c中:在文件前頭增加一行:void A2();就可以了
2。把A2.c中完整定義的函數(shù)的原型,寫到一個(gè)A2.h文件中,然后在A1.c的文件頭增加#include "A2.h"就可以了
以上兩種方法,在A1.c中都可以正常的調(diào)用,就跟在A2.c中調(diào)用一樣。