私はに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. C++データ型とC#データ型
- 2. プログラミングテンプレートのスタイル
- 3. C#データ型とMySqlデータ型
- 4. C++のVARIANTデータ型をC#
- 5. データ型のObj-C
- 6. データ型のC++エラー
- 7. C++/CLIでのC/C++データ型のマッピング
- 8. 最適化データ型(C#の)
- 9. PostgreSQLとC#のデータ型
- 10. C#のデータ型と変数
- 11. C#データ型の質問
- 12. C# - 値0.5のデータ型
- 13. 大規模システムのプログラミングテンプレートの使用
- 14. c#datatypes - > oracleデータ型
- 15. C#のExcelセルのデータ型を取得
- 16. ffiでのC++データ型のインポート
- 17. C#:エンティティフレームワークの検索データ型の変更
- 18. CからJavaへのデータ型のマッピング
- 19. c言語のデータ型算術規則
- 20. 組み込みデータ型からユーザー定義データ型への変換C++
- 21. C++のブール型データ型は何ですか
- 22. GTKのデータ型とベースのデータ型
- 23. SQL Server 2005 UniqueIdentifierおよびC#データ型
- 24. memcpy in C#で異なるデータ型
- 25. PRO * CおよびC++でのデータ型の競合
- 26. SQL数値(18,0)データ型に対応するC++データ型は何ですか?
- 27. ブール型データ型のJTableセル
- 28. カスタムデータ型(MPI_Datatypeデータ型)?
- 29. 列挙型データ型
- 30. cppのデータ型
文字列と整数の両方で、まったく同じことをやっていますか? –
おそらくコードを教えてください? – Bart