2017-01-11 72 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'应该有两个参数,但你已经定义了它们只有一个? –

+0

但我不太确定什么是2个参数或参数我应该把... –

回答

1

好像你已经过去了两个参数与一个参数

定义函数
static int read_char(avro_reader_t reader) 
static int write_char(avro_writer_t writer) 

每个都有一个参数 但y ou叫他们使用

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

其中传递2个参数。

+0

所以我没有添加记录的参数?我会试试看..谢谢.. –