只要總和爲正數,就可以獲取數字數組(未知類型)並在每個單元格中創建另一個累積數字總和數組。 如何爲任何類型的變量做這個函數? (int,double,long,short,float ..)任意類型的變量的數字排列
回答
爲了簡單起見,我展示了一個函數,只是增加了兩個數字。我認爲你將不會遇到寫一個操作數組的函數的問題。
使用C++,你可以使用這樣的模板(只是顯示在這裏證明應該實現什麼):
#include <iostream>
using namespace std;
template<typename T> T sum(T a, T b)
{
return a + b;
}
int main(void)
{
long a = 5;
long b = 37;
long c = sum(a, b);
cout << c << endl;
}
這將在飛行創建一個真正的功能任何類型是所需的,所以這裏將使用這個模板創建一個處理long
的函數。
您也可以達到類似使用通用選擇在C「打電話安慰」,但這仍然要求您爲任何類型的應處理,這樣提供實際的功能:
#include <stdio.h>
static int sum__int(int a, int b)
{
return a + b;
}
static long sum__long(long a, long b)
{
return a + b;
}
static double sum__double(double a, double b)
{
return a + b;
}
#define sum(a, b) _Generic((a), \
int: sum__int, \
long: sum__long, \
double: sum__double \
)((a), (b))
int main(void)
{
long a = 5;
long b = 37;
long c = sum(a, b);
printf("%ld\n", c);
}
這隻使用sum__long()
,其他功能在這個小例子中未使用。如果這讓你感到困擾,這是C++更適合這項工作的例子之一。
你應該注意這個答案不顯示通用功能(這是我如何理解你的問題,你想要什麼)。在C中沒有這樣的概念。你爲有爲每個數據類型提供一個函數。即使在介紹性的C++示例中,每種數據類型都會有一個函數,但C++模板只是根據您的需要來管理創建這些函數。如果您需要真正的通用函數,則必須選擇完全不同的語言(例如Java或C#)。
好吧,如果任何downvoter可以指出這個答案是錯誤的,我很樂意糾正它。現在我很確定它回答了OP的問題。 –
我對C(甚至C++)如何不支持泛型函數做了進一步的說明,所以這個答案應該完全清楚。再次,不要只是默默地投票,請在評論中表達你的疑慮,所以我知道你認爲這個答案錯過了。 –
- 1. 任意類型的數組
- 2. 一類變量的排列
- 3. 任意排列數組鍵
- 4. C++類中的任意數據類型
- 5. 函數的參數任意數量給出錯誤類型
- 6. 在Python中使用任意數量的變量列表推導?
- 7. 使用javascript排列數組中的任意數字
- 8. ML模型預測排名(任意排序的列表)
- 9. 有任意數量的行的列表
- 10. 爲任意一組密鑰(任意數據類型)獲取可排列對象的最有效方法
- 11. 枚舉類型的任意整數值
- 12. 指定任何類型的變量
- 13. SQL Server:加入任意數量的列
- 14. 存儲類型的類型來處理變量參數列表
- 15. ESE列類型爲XmlSerialize任意對象
- 16. 如何在django模型中存儲任意數量的字段?
- 17. 如何使用任意數量的任意字段類型對對象進行建模? (django orm)
- 18. 分類變量可能排列的數量
- 19. 任意數量
- 20. 根據python類中的變量按字母順序排列類的列表2.7
- 21. 如何確定任意C++數值類型的實部類型?
- 22. 類型的「變量」,類型爲「可變」
- 23. 如何在類型變量中創建任何類型的字典?
- 24. 參數類類型變量
- 25. 將任意數量的一組變量傳遞給Python函數
- 26. Stata:變量類型(8位數字)
- 27. 的類型變量
- 28. Javascript變量類型(字節)
- 29. 排序陣列上的任意鍵
- 30. 在CSS任意數量的
告訴我,你是否清楚自己的要求? –
沒有[通用選擇](http://en.cppreference.com/w/c/language/generic)這是不可能的。 –
這是不可能的。這是C.你可以在C11中使用'_Generic'來實現一些這樣的宏。在任何情況下,對於每種類型的數組,都需要一個函數。 –