Ошибка вызова rsi_uint32_to_4bytes с компилятором g cc - PullRequest
0 голосов
/ 28 января 2020
void parse_ipv6_address(uint8 *v, uint8 *buf)
{
    uint8 value = 0;
    uint8 offset = 0;
    uint8 index = 0;
    uint16 buffer_offset = 0;
    uint8 temp_buff[10];
    uint32 v6[4] = {'\0'};
    temp_buff[0] = '\0';
    uint8 i = 0;
    //! Total 8 octets
    for(index = 0; index < 8 ;index++)
    {
        //! each octet contains max of 5 characters including . dot
        for(offset = 0;offset < 5 ; offset++)
        {
            value = buf[buffer_offset++];
            if((value == '.') || (value == ':'))
            {
            break;
            }
            temp_buff[offset] =  value;    
        }
        temp_buff[offset]= '\0';
        if(index % 2 == 0)
        {
            v6[index/2] = (parseHex(temp_buff) << 16);
        }
        else
        {
            v6[index/2] |= parseHex(temp_buff);
        }
        temp_buff[0] = '\0';
    }

    for(i = 0; i < 4; i++)
    {
        rsi_uint32_to_4bytes((v+(4*i)), v6[i]);
    }
}

Слишком много аргументов для функции rsi_uint32_to_4bytes. Он был объявлен как void rsi_uint32_to_4bytes(uint8 *dBuf,uint32 val);, и он продолжает показывать конфликтующие типы ошибок для функции, и этот код начал показывать ошибку, когда я перенес ее в компилятор g cc.

...