私はに2つの関数を持っています。Cはまったく同じことをしていますが、唯一の違いは各関数に渡されるデータ型です。 1つは他のchar * intです。 これらの関数を1つに結合する方法があるので、この1つの関数を呼び出すときにデータ型を心配する必要はありません。これはC++でテンプレートを使って行うことができますが、私はCで同じことをしたいと思います。Cプログラミングテンプレートのデータ型
2
A
答えて
1
は、私が "void *型のP" と "int型のサイズ" は、例えば
void f1(int i); void f2(char *str); -> void f(void *p, int s);
f(&i, sizeof(i)); f(str, strlen(str);//or may be f(str, sizeof(str[0]);
とC.
1)int型と "char型*" を置き換え、そのようなsitutationに対処するための2つの一般的な方法を、知っていますこのような
#define f(arg) do { \
//magic
} while (0)
の事のように、STDLIB
2)を使用するプリプロセッサからqsortを見るには、LINでのstd ::リストをエミュレートするために使用しましたuxカーネル。
+0
ありがとうございます –
0
彼らは、おそらくそれらのいずれかで、あなたが他のタイプ(char* ==> int
またはint ==> char*
)にパラメータを変換している、「はまったく同じことをやって」している場合。そうであれば、変換だけを行い、他の関数を呼び出すことができます。そうすれば、その大半のコピーを1つしか持てません。
このような動作をエレガントに「テンプレート化」する方法は実際にはありません。そうしようとすると、あなたのコードは理解不能なMESSにしかならないでしょう。
関連する問題
- 1. プログラミングテンプレートのスタイル
- 2. C++データ型とC#データ型
- 3. C#データ型とMySqlデータ型
- 4. c#でのデータ型c#でのデータ型c#
- 5. C++のVARIANTデータ型をC#
- 6. C#のエミュレートCデータ型
- 7. データ型のC++エラー
- 8. データ型のObj-C
- 9. C++でのデータ型
- 10. 大規模システムのプログラミングテンプレートの使用
- 11. C++/CLIでのC/C++データ型のマッピング
- 12. メッセージボックスのデータ型のC#
- 13. C#のデータ型と変数
- 14. PostgreSQLとC#のデータ型
- 15. 最適化データ型(C#の)
- 16. C# - 値0.5のデータ型
- 17. C#データ型の質問
- 18. C#のデータ型変換エラー
- 19. c#datatypes - > oracleデータ型
- 20. C++異なるデータ型
- 21. LabVIEWデータ型をC#データ型に変換するコード
- 22. C++ 11のデータ型の混乱
- 23. ffiでのC++データ型のインポート
- 24. C#の動的データ型のボクシング?
- 25. C#:エンティティフレームワークの検索データ型の変更
- 26. C#のExcelセルのデータ型を取得
- 27. CからJavaへのデータ型のマッピング
- 28. テンソルフロー内のFloatデータ型C++ API
- 29. c#列のデータ型とサイズを取得
- 30. C++のデータ型をラップしますか?
文字列と整数の両方で、まったく同じことをやっていますか? –
おそらくコードを教えてください? – Bart