2017-01-11 1 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); 

Zuvor habe ich Fehler bekommen, wo sie sagten, dass read_char und write_char nicht als Funktionen deklariert sind. Aber nachdem ich die Funktion deklariert habe, ist immer noch ein Fehler aufgetreten. Aber die Funktion ist etwas, was wir nicht tun können. Was sind diese Fehler? (avro)

Was wir für write_char und read_char getan ist:

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; 
} 

Im Folgenden sind weitere Beispiele für andere Funktionen:

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

Es sieht aus wie 'read_char' und' write_char' sollten zwei Argumente haben, aber Sie haben sie mit nur einem definiert? –

+0

aber ich bin nicht sicher, was sind die 2 Argumente oder Parameter, die ich setzen sollte ... –

Antwort

1

Es scheint, wie Sie zwei Argumente für Funktionen mit einem Argument definiert bestanden haben

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

hat jeweils ein Argument aber y Sie haben sie mit

aufgerufen, die 2 Argumente übergeben haben.

+0

, also habe ich nicht die Parameter für den Datensatz hinzufügen? ich werde es versuchen .. danke .. –