TLV как парсить?

Тема в разделе "WASM.UNIX", создана пользователем raisin, 4 окт 2009.

  1. raisin

    raisin New Member

    Публикаций:
    0
    Регистрация:
    3 сен 2009
    Сообщения:
    4
    если я делаю так...
    foo(char * recv_data)
    {
    if(recv_data[1] == 0x01 )
    {
    //whatever
    }
    }
    или вот так
    foo(char * recved_data)
    {
    if(strcmp(recved_data[1] , "0x01") ==0 )
    {
    //whatever
    }
    }
    то получаю болт.
    что не так то? как проверить первый байт на hex 0x01 ?
     
  2. asd

    asd New Member

    Публикаций:
    0
    Регистрация:
    12 мар 2005
    Сообщения:
    952
    Адрес:
    Russia
    Что такое TLV понятия не имею, но
    может так?
    if(recv_data[0] == 0x01 )
     
  3. Booster

    Booster New Member

    Публикаций:
    0
    Регистрация:
    26 ноя 2004
    Сообщения:
    4.860
    TLV это наверно: type, length, value.
    А что за болт получает ТС, можно только догадываться.
     
  4. _ir4_Y_

    _ir4_Y_ New Member

    Публикаций:
    0
    Регистрация:
    8 мар 2007
    Сообщения:
    76
    дорогой raisin прочитай хотя бы одну книжку по С или С++ а уж потом пиши подобные глупые воросы ...

    В С/C++ индексация массивов начинается с 0
    первому элементу соответствует индекс 0
    второму 1
    третьему 2

    ЗЫ
    если уж тебе так охота что бы первый элемент имел индекс 1 а не ноль то юзай следующий код
    Код (Text):
    1. char *ptr=recv_data;
    2. ptr--;
    3. ptr[1];
    ptr указывает на предыдущий элемент массива recv_data таким образом
    ptr[1] тожесамое что и recv_data[0]