c語(yǔ)言中一個(gè)完整的函數(shù)由函數(shù)首部和函數(shù)體構(gòu)成,而且定義函數(shù)時(shí)兩者都是必不可少的。
成都創(chuàng)新互聯(lián)主營(yíng)定陶網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營(yíng)網(wǎng)站建設(shè)方案,app軟件定制開(kāi)發(fā),定陶h5微信小程序搭建,定陶網(wǎng)站營(yíng)銷推廣歡迎定陶等地區(qū)企業(yè)咨詢
函數(shù)定義的一般形式如下:
類型標(biāo)識(shí)符
函數(shù)名(形參表列)
//
這是函數(shù)首部
//
以下{
}內(nèi)的是函數(shù)體
{
說(shuō)明部分
執(zhí)行部分
}
舉例說(shuō)明如下:
//
定義一個(gè)不帶返回值的函數(shù)
//
函數(shù)功能:輸出形參的值
void
fun(int
a,
int
b)
{
printf("%d,
%d\n",
a,
b);
}
//
定義一個(gè)帶返回值的函數(shù)
//
函數(shù)功能:返回2個(gè)整數(shù)數(shù)的最大值
int
fun(int
a,
int
b)
{
return
ab
?
a
:
b;
}
#include?iostream//?必須的頭文件#include?pthread.h
using?namespace?std;?
#define?NUM_THREADS?2?
//?線程的運(yùn)行函數(shù)
void*?say_hello(void*?args){
cout??"Hello?Runoob!"??endl;????return?0;
}?
int?main(){
//?定義線程的?id?變量,多個(gè)變量使用數(shù)組
pthread_t?tids[NUM_THREADS];????
for(int?i?=?0;?i??NUM_THREADS;?++i)
{
//參數(shù)依次是:創(chuàng)建的線程id,線程參數(shù),調(diào)用的函數(shù),傳入的函數(shù)參數(shù)
int?ret?=?pthread_create(tids[i],?NULL,?say_hello,?NULL);????????
if?(ret?!=?0)
{
cout??"pthread_create?error:?error_code="??ret??endl;????????
}
}
//等各個(gè)線程退出后,進(jìn)程才結(jié)束,否則進(jìn)程強(qiáng)制結(jié)束了,線程可能還沒(méi)反應(yīng)過(guò)來(lái);
pthread_exit(NULL);
}
g++ test.cpp -lpthread -o test.o 編譯
./test.o執(zhí)行
到底是什么意思呢?
像這樣嗎?
struct
SLIST
a,b,c,*p;
a.data='a';
b.data='b';
c.data='c';
p=a;
a.next=b;
b.next=c;
c.next='\0';
if(p==‘\0’)//這樣應(yīng)該是0而不是O
printf(“Linklist
is
null!\n”);/*鏈表為空(只有頭結(jié)點(diǎn))*/
else
/*鏈表非空*/
{
printf(“head”);
do
{printf(“-%d”,p-data);/*輸出當(dāng)前結(jié)點(diǎn)數(shù)據(jù)域中的值*/
p=p-next; /*p指向下一個(gè)結(jié)點(diǎn)*/
}
while(p!=‘\0’); /*未到鏈表尾,繼續(xù)循環(huán)*/
printf(“-end\n”);
#includelt;stdio.hgt;
#includelt;stdlib.hgt;
int HCF(int x,int y);//定義最大公約數(shù)函數(shù)
int LCM(int p,int q);//定義最小公倍數(shù)函數(shù)
int main()
{
int a,b,hcf,lcm;
scanf("%d%d",a,b);//輸入兩個(gè)整數(shù)
hcf=HCF(a,b);//調(diào)用最大公約數(shù)函數(shù)
lcm=LCM(a,b);//調(diào)用最小公倍數(shù)函數(shù)
printf("HCF is%d LCM is%d\n",hcf,lcm);//輸出最大公約數(shù)和最小公倍數(shù)
system("pause");
return 0;
}
int sum;//定義外部變量sum
//最大公約數(shù)函數(shù)
int HCF(int x,int y)
{
int i,k,m,n;
sum=1;
k=xgt;y?y:x;
i=2;
while(ilt;=k){
m=x%i;
n=y%i;
if(m==0n==0){
sum*=i;
x/=i;
y/=i;
i=2;
}
else
i++;
}
return sum;
}
//最小公倍數(shù)函數(shù)
int LCM(int p,int q)
{
int lc;
lc=p*q/sum;
return lc;
}
擴(kuò)展資料:
用法:
1、printf()函數(shù)是格式化輸出函數(shù),一般用于向標(biāo)準(zhǔn)輸出設(shè)備按規(guī)定格式輸出信息。
格式輸出,它是c語(yǔ)言中產(chǎn)生格式化輸出的函數(shù)(在stdio.h中定義)。用于向終端(顯示器、控制臺(tái)等)輸出字符。格式控制由要輸出的文字和數(shù)據(jù)格式說(shuō)明組成。
要輸出的文字除了可以使用字母、數(shù)字、空格和一些數(shù)字符號(hào)以外,還可以使用一些轉(zhuǎn)義字符表示特殊的含義。
簡(jiǎn)單點(diǎn)理解就是,在一段程序中你正確使用該函數(shù),可以在該程序運(yùn)行的時(shí)候輸出你所需要的內(nèi)容。
2、printf函數(shù)是一個(gè)標(biāo)準(zhǔn)庫(kù)函數(shù),它的函數(shù)原型在頭文件“stdio.h”中。但作為一個(gè)特例,不要求在使用printf函數(shù)之前必須包含stdio.h文件。
printf()函數(shù)的調(diào)用格式為:printf("lt;格式化字符串gt;",lt;參量表gt;)。
其中格式化字符串用于指定輸出格式。格式控制串可由格式字符串和非格式字符串兩種組成。
#include?stdio.h
#include?string.h
int?maxValue(int?a,int?b);
int?sum(int?a,int?b);
int?main(void)?
{
int?(*func)(int?a,int?b)=NULL;
char?str[10];
gets(str);
if(!strcmp(str,"maxValue"))
{
func=maxValue;
}
else
{
if(!strcmp(str,"sum"))
{
func=sum;
}
}
if(func)
{
printf("%d\n",(*func)(3,5));
}
return?0;
}
int?maxValue(int?a,int?b)
{
return?ab?a:b;
}
int?sum(int?a,int?b)
{
return?a+b;
}
我在c++里做了一個(gè)測(cè)試,程序如下:
#includestdio.h
int max(int x,int y){return x+y;}
int max(int x,int y,int z){return x+y+z;}
void main()
{
printf("%d\n",max(1,2));
printf("%d",max(1,2,3));
}
如果定義別的名字相同的函數(shù),可以把它們的參數(shù)設(shè)置成不同的,否則會(huì)出現(xiàn)二義性