バイト配列を組み合わせてcの可変数の引数(可変関数)を受け入れる方法は?予め可変数の引数を受け入れるためにバイト配列を結合する
typedef struct {
unsigned char *data;
int length;
} bytes;
// Problem in here how to combine byte arrays
// for accepts a variable number of arguments
bytes bytesConcat(bytes fmt, ...) {
return b1 + b2 + ...b(n)
}
static unsigned char src1[] = { 1,2 };
static unsigned char src2[] = { 3,4 };
void main() {
bytes b1, b2;
b1.data = src1;
b1.length = sizeof(src1);
b2.data = src2;
b2.length = sizeof(src2);
// call byteConcat with passing two arguments
// result1 expected is 1,2,3,4
bytes result1 = bytesConcat(b1, b2);
}
おかげ
何を試しましたか? – 2501
引数の可変数だけではなく、これ以上のことがあります。私はあなたが考える必要がある主な問題はメモリ管理だと思います。さまざまな議論を扱うことは簡単な部分です:[この質問](http://stackoverflow.com/questions/205529/passing-variable-number-of-arguments-around)もご覧ください。 – Cyb3rFly3r
fmtの引数リストをbytesConcat関数で取得する方法は? – ant