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 Comentarios

  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?

Dejar respuesta

Please enter your comment!
Please enter your name here