導航:首頁 > 方法技巧 > c如何調用方法

c如何調用方法

發布時間:2022-07-06 10:11:45

㈠ C語言函數調用的三種方式並分別舉一例。

1、值傳遞,創建變數x和y,x的值等於a的值,y的值等於b的值

void Exchg1(int x, int y)

{

int tmp;

tmp=x;

x=y;

y=tmp;

printf(「x=%d,y=%d/n」,x,y)

}

void main()

{

int a=4,b=6;

Exchg1 (a,b) ;

printf(「a=%d,b=%d/n」,a,b)

}

2、地址傳遞,相當於建立了px和py兩個指向整型的指針,其值分別為a和b的地址

Exchg2(int *px, int *py)

{

int tmp=*px;

*px=*py;

*py=tmp;

print(「*px=%d,*py=%d/n」,*px,*py);

}

main()

{

int a=4;

int b=6;

Exchg2(&a,&b);

Print(「a=%d,b=%d/n」, a, b);

}

3、引用傳遞,x和y直接引用a和b,對a和b操作,相當於給a、b起了別名x、y

Exchg2(int &x, int &y)

{

int tmp=x;

x=y;

y=tmp;

print(「x=%d,y=%d/n」,x,y);

}

main()

{

int a=4;

int b=6;

Exchg2(a,b);

Print(「a=%d,b=%d/n」, a, b);

}

(1)c如何調用方法擴展閱讀:

printf用法:

printf()函數的調用格式為:printf("<格式化字元串>",<參量表>)。

其中格式化字元串包括兩部分內容:一部分是正常字元,這些字元將按原樣輸出;另一部分是格式化規定字元,以"%"開始,後跟一個或幾個規定字元,用來確定輸出內容格式。

參量表是需要輸出的一系列參數,其個數必須與格式化字元串所說明的輸出參數個數一樣多,各參數之間用","分開,且順序一一對應,否則將會出現意想不到的錯誤。

比如:

int a=1234;

printf("a=%d ",a);

輸出結果為a=1234。

㈡ C語言如何調用

先聲明被調用函數,然後在主調函數(可以為main函數也可為一般功能函數)里進行調用!!!

㈢ C語言中方法的調用問題

定義了一個簡單的函數func1, 調用的時候只需要"函數名()" 的方式就可以調用的到。(至於調用的過程是如何處理的,就要參考匯編的知識了。)

但是,在實際的開發過程中可能會遇到這種情況, 函數名事先並不確定,函數名是通過一個字元串變數保存的,這種狀況該如何調用呢?
更具體一點的例子,函數名是通過外部輸入進去了。
該如何執行func1呢?
解決以上問題之前, 首先引入函數指針的概念。
在C語言中,某一數據變數的內存地址可以存儲在相應的指針變數中,比如 int * , char * 等,
對於函數來說,也同樣如此,函數的首地址也可以存儲在某個函數指針變數里,通過這個函數指針變數我們就可以調用所指向的函數了。
如何定義函數指針變數? 很簡單。
對應到上面 func1 函數,可以定義如下的指針變數。
void (*funcP)()
funcP這個名字可以隨便取。
/************************
* add by oscar999
************************/
func1()
{
printf("this is func1!\n");
}

void main()
{
void (*funcP)();
funcP = &func1;
(*funcP)();
}
有了如上的例子,不難想到:
如果事先定義一些函數指針,通過傳入的函數名字串,得到相應的函數指針,就可以實現函數調用了。
[cpp] view plainprint?
/************************
* add by oscar999
************************/
#include <stdio.h>

typedef void (*funcP)();
void func1()
{
printf("this is func1!\n");
}
void func2()
{
printf("this is func2!\n");
}
funcP getFuncPointer(char* sfuncname)
{
if(strcmp(sfuncname,"func1")==0)
{
return &func1;
}else if(strcmp(sfuncname,"func2")==0){
return &func2;
}
return NULL;
}

void main()
{
char c[20] = "\0";
funcP funcp = NULL;
printf("please input func name:");
scanf("%s",c); //input func1 or func2
funcp = getFuncPointer(c);
if(funcp!=NULL)
{
(*funcp)();
}
}
/************************
* add by oscar999
************************/

#include <stdio.h>

typedef void (*funcP)();
void func1()
{
printf("this is func1!\n");
}
void func2()
{

printf("this is func2!\n");
}
funcP getFuncPointer(char* sfuncname)
{

if(strcmp(sfuncname,"func1")==0)
{

return &func1;

}else if(strcmp(sfuncname,"func2")==0){
return &func2;

}
return NULL;

}

void main()
{

char c[20] = "\0";

funcP funcp = NULL;

printf("please input func name:");
scanf("%s",c); //input func1 or func2

funcp = getFuncPointer(c);

if(funcp!=NULL)
{

(*funcp)();

}
}
你可能會想,通過傳入的string 直接調用對應的function不就可以了嗎?類似:

[cpp] view plainprint?
/************************
* add by oscar999
************************/
#include <stdio.h>

typedef void (*funcP)();
void func1()
{
printf("this is func1!\n");
}
void func2()
{
printf("this is func2!\n");
}
void main()
{
char c[20] = "\0";
funcP funcp = NULL;
printf("please input func name:");
scanf("%s",c); //input func1 or func2
if(strcmp(c,"func1")==0)
{
func1();
}else if(strcmp(c,"func2")==0){
func2();
}
}
/************************
* add by oscar999
************************/

#include <stdio.h>
typedef void (*funcP)();
void func1()
{
printf("this is func1!\n");
}
void func2()
{

printf("this is func2!\n");
}
void main()
{

char c[20] = "\0";

funcP funcp = NULL;

printf("please input func name:");

scanf("%s",c); //input func1 or func2
if(strcmp(c,"func1")==0)
{

func1();
}else if(strcmp(c,"func2")==0){
func2();

}
}
以上這種對於 function 較少的狀況可以使用, 但是func很多的話, 或者動態的生成這部分的話,指針函數的方式就很好了。
函數名字串和函數指針放到一個name value set 中去, 這樣就可以很容易得到函數指針了。

㈣ c語言中函數的調用方法

呃···
看書會比較明白吧···
1、函數聲明: 返回類型 函數名(形參1,形參2,形參3);(以此類推,有幾個參數寫幾個)
2、函數調用:函數名 (實參1,實參2,實參3); (以此類推,有幾個參數寫幾個)

3、函數演算法:返回類型 函數名(形參1,形參2,形參3)(以此類推,有幾個參數寫幾個)

{

}

㈤ c語言中怎麼調用自己定義的函數

在使用一個函數之前必須先對他進行聲明:

//void B();聲明B函數的存在。void A(){B();//非法,程序執行到此時並不知道B函數的存在。}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(a>sqrt(n*1.0))

return(1);

else

return(0);

}

void main( )

{

int n,q;

scanf("%d",&n);

(5)c如何調用方法擴展閱讀

#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(a>sqrt(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語言如何調用函數

C語言中,函數調用的一般形式為:

函數名(實際參數表)

對無參函數調用時則無實際參數表。實際參數表中的參數可以是常數、變數或其它構造類型數據及表達式。各實參之間用逗號分隔。

#include<stdio.h>
intfun(intx,inty);//函數聲明,如果函數寫在被調用處之前,可以不用聲明
voidmain()
{
inta=1,b=2,c;
c=fun(a,b);//函數的調用,調用自定義函數fun,其中a,b為實際參數,傳遞給被調用函數的輸入值
}
//自定義函數fun
intfun(intx,inty)//函數首部
{//{}中的語言為函數體
returnx>y?x:y;//返回x和y中較大的一個數
}

(6)c如何調用方法擴展閱讀

C語言中不允許作嵌套的函數定義。因此各函數之間是平行的,不存在上一級函數和下一級函數的問題。但是C語言允許在一個函數的定義中出現對另一個函數的調用。

這樣就出現了函數的嵌套調用。即在被調函數中又調用其它函數。這與其它語言的子程序嵌套的情形是類似的。其關系可表示如圖。

圖表示了兩層嵌套的情形。其執行過程是:執行main函數中調用a函數的語句時,即轉去執行a函數,在a函數中調用b 函數時,又轉去執行b函數,b函數執行完畢返回a函數的斷點繼續執行,a函數執行完畢返回main函數的斷點繼續執行。

㈦ c語言如何實現函數的調用

如何調用C語言寫的庫,如a.lib等,有對應的庫頭文件a.h。假設a.h中定義了函數:
int
WhyCoding(int
a,
float
b);
做法是,
/*
cpp_a.h
*/
extern
"C"
{
#include
"a.h"
}

/*
cpp_a.h
*/
extern
"C"
{
int
WhyCoding(int
a,
float
b);
/*
重定義所有的C函數
*/
}
從上面可以看出,extern
"C"
是用在C和C++之間的橋梁。之所以需要這個橋梁是因為C編譯器編譯函數時不帶
函數的類型信息,只包含函數符號名字,如C編譯器把函數int
a(float
x)編譯成類似_a這樣的符號,C連接器只要
找到了調用函數的符號,就可以連接成功,它假設參數類型信息是正確的,這是C編譯連接器的缺點。而C++
編譯器為了實現函數重載,編譯時會帶上函數的類型信息,如他把上面的a函數可能編譯成_a_float這樣的
符號為了實現重載,注意它還是沒有帶返回值得信息,這也是為什麼C++不支持採用函數返回值來區別函數
重載的原因之一,當然,函數的使用者對函數返回值的處理方式(如忽略)也是重要原因。
基於以上,C調用C++,首先需要用封裝函數把對C++的類等的調用封裝成C函數以便C調用,於是extern
"C"

作用是:讓編譯器知道這件事,然後以C語言的方式編譯和連接封裝函數.(通常是把封裝函數用C++編譯器按C++
方式編譯,用了extern
"C"
後,編譯器便依C的方式編譯封裝介面,當然介面函數裡面的C++語法還是按C++方式
編譯;對於C語言部分--調用者,還是按C語言編譯;分別對C++介面部分和C部分編譯後,再連接就可以實現C
調用C++了).
相反,C++調用C函數,extern
"C"
的作用是:讓C++連接器找調用函數的符號時採用C的方式,即使用_a而不是
_a_float來找調用函數。

㈧ c語言中函數調用有三種方法,能幫忙各舉個例子嗎

1、首先在打開的C語言資料庫中,輸入【#include】,如下圖所示。

㈨ 如何在C#中,在一個類里調用另外一個類的方法

如果要通過類名來用方法的話,那其中的方法必須是靜態方法,需加上static。即public static void get() {...}。靜態方法是跟類關聯的,允許不對classA實例化,就可以用它的方法。

把A類有引用的方法加static

public class A

public static void MethodA()//如果不是static 就要實例化才能調用

public class B

public void MethodB

A.MethodA();//第一種方式

如果MethodA()沒有加static關鍵字

則使用 new A().MethodA();

}

語言結構

類:一個基本的C#類中包含數據成員、屬性、構造器和方法。屬性可以是靜態或實例成員。在C#中類的聲明與C++和Java很相似。但是,不像C++,C#結構體與類是不支持繼承多個父類。但是,與Java相同的是,一個結構體可以實現介面(interface)。Java的關鍵字import已經被替換成using,它起到了同樣的作用。

以上內容參考:網路-c#

閱讀全文

與c如何調用方法相關的資料

熱點內容
治白斑病有哪些好方法 瀏覽:657
粉末活性炭顆粒度濕法檢測方法 瀏覽:889
考試編排方法和技巧 瀏覽:317
白色結晶土蜂蜜鑒別方法 瀏覽:160
天然檢測的方法 瀏覽:255
中效天井棉安裝方法 瀏覽:910
討論研究蓄積作用的意義和方法 瀏覽:314
血餘炭的食用方法 瀏覽:256
牛蛙骨骼標本製作方法步驟 瀏覽:984
紅銅火燒後用什麼方法使其變硬啊 瀏覽:901
早些入睡的正確方法 瀏覽:640
電腦藍屏了怎麼辦多種方法 瀏覽:187
皮筋安裝方法 瀏覽:945
磁力表使用方法 瀏覽:806
如何計算下期和值的方法 瀏覽:167
火線膿皰的快速獲得方法 瀏覽:547
尾盤快速跳水方法 瀏覽:437
豆角種植搭架方法圖片 瀏覽:978
中學物理的研究方法 瀏覽:107
好用的圖片文字識別方法 瀏覽:337