_sda 0 20 января, 2020 Опубликовано 20 января, 2020 · Жалоба Коллеги, почему может ругаться(warning) Eclipse на следующую запись? alt_u8 n[3]; alt_8 latitude_deg; .... n[0] = buf_rx_data[7]; n[1] = buf_rx_data[8]; n[2] = 0; latitude_deg = atoi(n); Description Resource Path Location Type pointer targets in passing argument 1 of 'atoi' differ in signedness [-Wpointer-sign] passing argument 1 of 'atoi' from incompatible pointer type [enabled by default] main.c /receiver_app line 69 C/C++ Problem Что ему в знаках не нравится? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 2 20 января, 2020 Опубликовано 20 января, 2020 · Жалоба 51 minutes ago, _sda said: Что ему в знаках не нравится? Мб, дело в том, что вы в atoi засовываете массив чисел (n[3]), а не отдельно взятое число? Попробуйте конкатенировать этот массив, и потом засунуть в atoi. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 20 января, 2020 Опубликовано 20 января, 2020 · Жалоба 44 минуты назад, nice_vladi сказал: Мб, дело в том, что вы в atoi засовываете массив чисел (n[3]), а не отдельно взятое число? Попробуйте конкатенировать этот массив, и потом засунуть в atoi. Это не массив чисел, а массив десятичных разрядов числа. n[0] = '4'; n[1] = '7'; n[2] = '0'; latitude_min = atoi(n); На выходе получаем число 47. Как я понял ругня идёт на выход из atoi. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
nice_vladi 2 20 января, 2020 Опубликовано 20 января, 2020 · Жалоба 5 minutes ago, _sda said: Это не массив чисел, а массив десятичных разрядов числа. Да, я понимаю, что все вместе - это десятичное число. Но компилятор не в курсе =) И, возможно, ему не нравится, что вы в функцию atoi передаете МАССИВ чисел. А объявление типа: alt_u8 n[3]; Выглядит как раз, как массив из 3х alt_u8 чисел. Или я что-то не так понял? Прошу прощения, все перепутал. Почитал внимательнее гугл =)) Могу предположить, что это из-за нестандартного типа входных данных для функции atoi. Попробуйте привести к char: latitude_min = atoi((char *) n); Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 20 января, 2020 Опубликовано 20 января, 2020 · Жалоба Спасибо, всё стало нормалёк! Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Dvorkin 1 11 февраля, 2020 Опубликовано 11 февраля, 2020 · Жалоба Требуется char*, а передается unsigned char* On 1/20/2020 at 1:53 PM, _sda said: n[0] = '4'; n[1] = '7'; n[2] = '0'; latitude_min = atoi(n); Наверное, все же: n[2]=0; Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
_sda 0 11 февраля, 2020 Опубликовано 11 февраля, 2020 · Жалоба Конечно да. Это опечатка. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться