advertencia: el puntero objetivos de paso argumento 1 de ‘__builtin___strncpy_ch, ch, ch’ difieren en signedness

Estoy recibiendo una advertencia para el código de abajo.

//someother class 
#define EVENT_ID_DESCRIPTION_LEN  64
struct FILE_DESCRIPTIONS
{
    uint32_t  uFileID;
    uint32_t  uDescriptionLen; 
    int8_t   szDescription[FILE_ID_DESCRIPTION_LEN];
};

//defined inside a function of someother class
int8_t  chTemp[EVENT_ID_DESCRIPTION_LEN + 1];
strncpy(chTemp,pMsg->st.aDescriptions[nIndex].szDescription,EVENT_ID_DESCRIPTION_LEN);

advertencia: puntero objetivos de paso argumento 1 de ‘_builtin__strncpy_ch, ch, ch’ difieren en signedness

El valor de lo que estoy almacenamiento de es también uint8_t y que se almacena en está también uint8_t.¿cuál podría ser la causa de esta advertencia.
Gracias de antemano.

  • Parece que esta pregunta ha sido respondida, no estás de acuerdo?
InformationsquelleAutor Angus | 2011-06-20

3 Kommentare

  1. 4

    Realidad, su código es definir int8_t (signed int) y no uint8_t (unsigned int) como usted piensa. ¿Usted lo vio?

    Tiene que cambiar la variable a:

    uint8_t  chTemp[EVENT_ID_DESCRIPTION_LEN + 1];
  2. 3

    Recuerde que en C, los tres tipos de char, unsigned char y signed char son todos distintos, y strncpy espera un char. Si su int8_t se define como signed char, usted tiene un conflicto de tipos. Mejor usar un char, no?

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea