タグ付けされた質問 「variadic」

10
paramsキーワードを使用する理由
これは基本的な質問ですが、回答が見つかりませんでした。 なぜそれを使うのですか?関数またはそれを使用するメソッドを作成した場合、それを削除しても、コードは完全に機能します。機能がない場合と同じように100%機能します。例えば: パラメータあり: static public int addTwoEach(params int[] args) { int sum = 0; foreach (var item in args) sum += item + 2; return sum; } パラメータなし: static public int addTwoEach(int[] args) { int sum = 0; foreach (var item in args) sum += item + 2; return sum; …

5
可変個のマクロの作成方法(引数の変数の数)
特定の数ではなく、任意の数のパラメーターを受け入れるマクロをCで記述したい 例: #define macro( X ) something_complicated( whatever( X ) ) どこX任意の数のパラメータであります whateverオーバーロードされており、2つまたは4つのパラメーターで呼び出すことができるため、これが必要です。 マクロを2回定義しようとしましたが、2番目の定義が最初の定義を上書きしました。 私が使用しているコンパイラはg ++(より具体的には、mingw)です。

12
Cの可変個関数の呼び出しを転送する
Cでは、可変個関数の呼び出しを転送できますか?のように、 int my_printf(char *fmt, ...) { fprintf(stderr, "Calling printf with fmt %s", fmt); return SOMEHOW_INVOKE_LIBC_PRINTF; } 上記の方法で呼び出しを転送することは明らかにこの場合厳密には必要ありません(他の方法で呼び出しをログに記録したり、vfprintfを使用したりできるため)。 vfprintfと同様のヘルパー関数がない(および追加できない)。 [更新:これまでに提供された回答に基づいて、いくつかの混乱があるようです。質問を別の言い方で言うと、一般的に、関数の定義を変更せずに、任意の可変関数をラップできます。]
188 c  variadic 

5
独自の関数を作成するときにRの省略記号機能を使用するにはどうすればよいですか?
R言語には、可変数の引数を取ることができる関数を定義するための気の利いた機能があります。たとえば、関数data.frameは任意の数の引数を取り、各引数は結果のデータテーブルの列のデータになります。使用例: > data.frame(letters=c("a", "b", "c"), numbers=c(1,2,3), notes=c("do", "re", "mi")) letters numbers notes 1 a 1 do 2 b 2 re 3 c 3 mi 関数のシグネチャには、次のように省略記号が含まれています。 function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, stringsAsFactors = default.stringsAsFactors()) { [FUNCTION DEFINITION HERE] } 複数の値を取り、それらを単一の戻り値に統合する(およびその他の処理を行う)同様のことを行う関数を作成したいと思います。これを行うに...は、関数内の関数の引数から「アンパック」する方法を理解する必要があります。これを行う方法がわかりません。の関数定義の関連する行はですdata.frameがobject <- as.list(substitute(list(...)))[-1L]、これは意味がわかりません。 では、省略記号を関数のシグネチャから、たとえばリストに変換するにはどうすればよいでしょうか。 より具体的には、get_list_from_ellipsis以下のコードでどのように書くことができますか? my_ellipsis_function(...) …

4
CおよびC ++で呼び出される(…)は何ですか?
の用途の1つは、CおよびC ++の可変個のエンティティ...を示すことです。 それの名前は何? そのように使用すると、演算子または何か他のものとして分類されますか? に関するその他の詳細...? 編集: 私はの目的を知ってい...ます。私はその名前と分類について質問しています。これは、CとC ++の両方で類似していると思います。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.