2017-01-11 4 views
0
What are these errors ? 

/home/pi/try/client/c/libs/kaa/src/kaa/gen/kaa_logging_gen.c:93:9: error: too many arguments to function ‘avro_binary_encoding.read_char’ 
     avro_binary_encoding.read_char(reader, &record->NodeId); 
     ^
/home/pi/try/client/c/libs/kaa/src/kaa/gen/kaa_logging_gen.c:95:2: error: too many arguments to function ‘avro_binary_encoding.read_char’ 
    avro_binary_encoding.read_char(reader, &record->OnlineStat); 
^
/home/pi/try/client/c/libs/kaa/src/kaa/gen/kaa_logging_gen.c:99:2: error: too many arguments to function ‘avro_binary_encoding.read_char’ 
    avro_binary_encoding.read_char(reader, &record->FirmwareVER); 

以前は、read_charとwrite_charが関数として宣言されていないというエラーが出ました。しかし、関数を宣言した後、私はまだエラーがあります。しかし、この機能は、わからないことです。これらのエラーは何ですか? (avro)

私たちがwrite_charとread_charのために行わことです:

以下
static int read_char(avro_reader_t reader) 
{ 
    /* 
    * no-op 
    */ 
    AVRO_UNUSED(reader); 

    return 3; 
} 

static int write_char(avro_writer_t writer) 
{ 
    /* 
    * no-op 
    */ 
    AVRO_UNUSED(writer); 

    return 3; 
} 

は、他の機能の他の例である:

static int read_string(avro_reader_t reader, char **s, int64_t *len) 
{ 
    (void)len; 
    int64_t str_len = 0; 
    int rval; 
    check_prefix(rval, read_long(reader, &str_len), 
      "Cannot read string length: "); 
    *s = (char *) KAA_MALLOC(str_len + 1); 
    if (!*s) { 
     return ENOMEM; 
    } 
    (*s)[str_len] = '\0'; 
    AVRO_READ(reader, *s, str_len); 
    return 0; 
} 

static int write_string(avro_writer_t writer, const char *s) 
{ 
    int64_t len = strlen(s); 
    return write_bytes(writer, s, len); 
} 
+0

'read_char'のように見えますが、' write_char'には2つの引数が必要ですが、あなたは1つしか定義していませんか? –

+0

しかし、私は2つの引数または私は置く必要があるパラメータは何かがあまりにもわかりません... –

答えて

1

使用すると、1つの引数で定義された関数のための2つの引数が渡されているように思え

static int read_char(avro_reader_t reader) 
static int write_char(avro_writer_t writer) 

はそれぞれ1つの引数を持ちますが、 それらを2つの引数を渡した

avro_binary_encoding.read_char(reader, &record->NodeId); 
avro_binary_encoding.read_char(reader, &record->OnlineStat); 
avro_binary_encoding.read_char(reader, &record->FirmwareVER); 

を使用して呼び出しました。

+0

私はレコードのパラメータを追加しませんでしたか?私はそれを試してみる.. ..ありがとう.. –

関連する問題