さまざまな種類の数値配列を扱ういくつかのメソッドを実装する必要があります。通常、私はその仕事にジェネリックスを使用したいと思いますが、Cはそれらを提供しないので、マクロを使ってエミュレートしようとしています。ここでCの擬似ジェネリック
は私がやろうとしているものの例です:
#ifndef TYPE
#define TYPE int
#endif
TYPE get_minimum_##TYPE (TYPE * nums, int len){
TYPE min = nums[0];
for (int i = 1; i < len; i++) {
if (nums[i] < min) {
min = nums[i];
}
}
return min;
}
しかし、これはコンパイルされません。 clangのエラーメッセージ:
error: expected ';' after top level declarator
Cでこれを行う方法はありますか?それとも手作業であらゆるタイプのためにこれを実装する必要がありますか?あなたは、ヘッダーファイルでこのような何かを行うことができ
c#とjavaのfyiジェネリックスはランタイム機能です。 –
Cで "templates"/"generics"についてもう少し詳しくお知りになりたい場合は、[この質問を読むことができます](http://stackoverflow.com/questions/10950828/simulation-of-templates-in-c )。いくつかの興味深い答えがあります:) – Jehan