C語言中什麼使函式可以定義成對許多不同資料型別完成同任務

2022-10-08 23:44:45 字數 2254 閱讀 3452

1樓:匿名使用者

c語言不支援函式過載,因此要想使乙個函式定義成許多不同的資料型別,方法1:使用樓上所說的void強轉法。方法2:使用巨集。注意,無論如何函式名不能定義一樣。

比如定義乙個返回最大值的函式,支援int, short, float, double……等型別。

首先定義巨集:

#define com(type) type compare_##type(type a, type b) \

然後使用com(型別)就能定義該型別的函式:

com(float)

com(int)

……後面你就可以使用compare_int(),compare_float()了

2樓:匿名使用者

你說的是泛型程式設計,c中使用void*和函式指標來支援泛型程式設計如typedef void*(*fntype)(void*,void*);

void*intplus(void*lhs,void*rhs)void*stringplus(void*lhs,void*rhs)void*plus(void*lhs,void*rhs,fntype f)

c語言怎麼實現乙個能適用於不同資料型別的函式

3樓:吾乃無名矣

你可以用c++模板

你可以函式引數用指標,然後強制轉換;另乙個引數指明型別例如:void func(int *ptr,int type)}求採納!!

c語言中能否在一條定義語句中定義多個不同型別變數?舉例說明

4樓:和復犁韋

不能。變數由變數名和變數值構成。指定每一變數屬於乙個型別,這就便於在編譯時據此檢查在程式中要求對該變數進行的運算是否合法。

5樓:匿名使用者

不行的,

但是如果不是很較真的話,這樣也算了:

int a,*p;

//定義了乙個int型,乙個int*型

6樓:下雨天

用乙個分號隔開的就是一條語句,在一條語句中只能定義同型別的變數例如:int x,y;(x,y都是int型的)如果想定義不同型別的變數可以分開來寫

如:int x,y; char s;

(用分號隔開這屬於兩條語句,x和y是int型而s是char型)int x;

char y;

這也是兩條語句,記住哦

7樓:

4樓說得有問題,我用win7旗艦版,vc2010

#include

void main()

執行:1>------ 已啟動生成: 專案: 練手, 配置: debug win32 ------

1> 練手.cpp

1>c:\users\acer\documents\visual studio 2010\projects\練手\練手\練手.cpp(4):

error c2062: 意外的型別「char」

1>c:\users\acer\documents\visual studio 2010\projects\練手\練手\練手.cpp(5):

error c2065: 「a」: 未宣告的識別符號

********** 生成: 成功 0 個,失敗 1 個,最新 0 個,跳過 0 個 **********

結論,不行,勉強只有2樓那種情況

8樓:匿名使用者

一條定義語句中定義多個不同型別變數?

int a,b ;char ss;

9樓:

好像不行,除非為2樓所說的情況

10樓:匿名使用者

可以,例如:

#include

void main()

沒有錯誤。

c程式中的乙個變數可以被定義為兩個或多個不同的型別。這句話對嗎?為什麼

11樓:

對。可以通過共用體將同一變數賦予不同的資料型別。

c語言程式設計中,同乙個變數能否被重複定義成兩種不同型別

12樓:匿名使用者

在同一塊**區域中,不允許有同名變數!

在不同的**區,可以!

如:定義乙個全域性變數:

int a=10;

再定義乙個區域性變數:

void func()

這樣是可以的。

c語言中,函式可以巢狀定義嗎,C語言中,函式可以巢狀定義嗎

取決於編譯器.我在ubuntu16.04 用預設gcc,在eclipse中測試可以實現巢狀定義.經測試在函式中定義的函式,在當前作用域可以被呼叫.這樣一來,c語言貌似具有了一些物件導向的特性,使用起來比較方便 定義的時候不能巢狀,但是定義的時候可以遞迴 除了主函式以外都可以,不過在該函式巢狀定義前要...

C語言中定義函式,變數是指向指標的變數,呼叫時要怎麼呼叫

首先fact函式返回的是double型別,第乙個引數是double型的二維指標.所以是 c i fact c,y,z 因為double c 3 是二維double指標,c i 是乙個double一維指標,c i 就是double型資料。c是二維指標,可以傳過去 c i fact c,y,z c i ...

c語言中,定義了二維陣列a,當呼叫函式fun a

你的fun a 中a是什麼資料型別?無論哪種資料型別,a這種資料型別不存在,你自然不能把它當作形參了!a 表示乙個指向指標的指標標量a,後兩種是函式傳參的形式,是語言定義的規範。可直接將a定義為乙個指標型別,直接傳參 如 typedef a n m p2 darray p2 darray fan p...