-
- Тоже не верю. Ругань компилятора в студию. - SciFi(15.01.2021 08:14)
- Вот таких ошибок тысячи. Что-то связано со строками. Как я понял,
для них надо использовать тип char, а в проекте везде типы uint8_t,
uint16_t и т.д. Плотно пока не разбирался. FDA(1 знак., 15.01.2021 08:56, ссылка)
- Нормальные предупреждения, абсолютно по делу. По сути режим C89
просто отключает эти предупреждения. Если вам нравится прятать
голову в песок, отключите их и в режиме C99, делов-то. - SciFi(15.01.2021 09:07)
- Не могу понять как вот эти предупреждения отключить: FDA(193 знак., 15.01.2021 11:12)
- Кстати советую запомнить, я, например, длительное время не знал,
пока не обделался на этом, что в языке C есть три типа char: signed char, unsigned char и char. И это три разных типа. fk0(29 знак., 15.01.2021 11:37)
- Да, тут ты совершенно прав! При переходе на C99 проблемы были как раз с типами. В итоге за пару дней я всё таки смог проект перевести. Пришлось всю работу со строками заменить на char. Плюс добавить очень много прямых преобразований типов. Например, компилятор ругался при присвоении типу uint16_t типа uint32_t. В итоге всё заработало. Всем спасибо за помощь! - FDA(19.01.2021 15:18)
- Я знал. Что С - для извращенцев. Очередное подтверждение. - Kpoк(18.01.2021 13:17)
- Куда же бедному крестьянину податься? Кодить в хексе подобно
настоящим мущщинам? - SciFi(18.01.2021 13:25)
- Паскаль искать. Терра когда-то продавала - Kpoк(18.01.2021 18:58)
- Что там Терра продавала - то предания старины далекой, а вот
FreePascal обещает поддержку ARM/AVR/PIC32 - LightElf(18.01.2021 19:20, ссылка)
- Это гораздо интересней! - Kpoк(19.01.2021 09:07)
- А есть еще Turbo51, для особых эстетов :) - LightElf(19.01.2021 19:25)
- Это гораздо интересней! - Kpoк(19.01.2021 09:07)
- Что там Терра продавала - то предания старины далекой, а вот
FreePascal обещает поддержку ARM/AVR/PIC32 - LightElf(18.01.2021 19:20, ссылка)
- Паскаль искать. Терра когда-то продавала - Kpoк(18.01.2021 18:58)
- Куда же бедному крестьянину податься? Кодить в хексе подобно
настоящим мущщинам? - SciFi(18.01.2021 13:25)
- А вот и статью нашёл - Dingo(18.01.2021 12:25, ссылка)
- Не уверен, что правильно помню, но вроде версии signed / unsigned не менее 8 бит, а просто char привязан к машинному слову. На хабре человек разбирал на примере, когда char 9 бит, а signed/unsigned 8 бит. Dingo(31 знак., 18.01.2021 12:23)
- На сколько мне известно, char равен signed char или unsigned char, в зависимости от ключей компилятора. Обычно, по умолчанию, char === signed char - AlexBi(15.01.2021 11:54)
- Я char не знал - а что это по сравнению с собратьями? - MBedder(15.01.2021 11:39)
- Принципиально на большинстве компиляторов не отличается от signed
char, у некоторых unsigned char (watcom, picc18 std, вроде, или там
ключ нужен для того). В смысле, сгенерированный код не отличается.
Но с точки зрения компилятора типы все три -- разные. И во-первых
будут ошибки и варнинги если не тот тип подсовывать, во-вторых в
C++ если есть зависимость от типа, то нужно рассматривать все три
варианта, чтоб не воспринять char как некую абстрактную структуру. fk0(1253 знак., 15.01.2021 12:04)
- Спасибо, жуть :)) - MBedder(15.01.2021 12:07)
- В IAR в настройках проекта можно выбрать signed/unsigned. А в RAD
еще и wchar. - BlackMorda(15.01.2021 13:06)
- У богатых свои причуды, а вот я все никак не могу осилить на
нахуй мне ненужныеIAR/RAD накопить :(( - MBedder(16.01.2021 15:29)
- У богатых свои причуды, а вот я все никак не могу осилить на
- В IAR в настройках проекта можно выбрать signed/unsigned. А в RAD
еще и wchar. - BlackMorda(15.01.2021 13:06)
- Спасибо, жуть :)) - MBedder(15.01.2021 12:07)
- Принципиально на большинстве компиляторов не отличается от signed
char, у некоторых unsigned char (watcom, picc18 std, вроде, или там
ключ нужен для того). В смысле, сгенерированный код не отличается.
Но с точки зрения компилятора типы все три -- разные. И во-первых
будут ошибки и варнинги если не тот тип подсовывать, во-вторых в
C++ если есть зависимость от типа, то нужно рассматривать все три
варианта, чтоб не воспринять char как некую абстрактную структуру. fk0(1253 знак., 15.01.2021 12:04)
- Их нужно не отключить, я однажды исправить. Там исправления такого уровня, что делаются чуть ли не регэкспом, во всяком случае любой дурак по-шаблону справится. Исправления код не изменят. Т.е. легко проверить, что после исправлений собирается такой же бинарник. Суть исправлений: руками привести типы насильно (через каст к void*: "func((const void*)var)"). Хотя вообще за частью таких варнингов запросто могут стоять ошибки, со строками наверное одно из немногих исключений, fk0(79 знак., 15.01.2021 11:34)
- Use the command line option "-nw= n". Where n is the warning message you want to suppress. - m16(15.01.2021 11:31)
- Это, наверное, только у PRO версии? - fk0(15.01.2021 11:35)
- С18, пардон. для ХС8 иначе: m16(298 знак., 15.01.2021 11:54)
- Это, наверное, только у PRO версии? - fk0(15.01.2021 11:35)
- У PICC18 отдельные предупреждения не отключаются, только уровень настраивается. Но есть другой путь: предупреждения лежат в каком-то .txt файлике в составе компилятора и там в каждой строчке номер, буква и строка ошибки. Буква определяет это warning, error, и уровень варнинга. Как-то так. Давно было дело, я уже не помню. У меня в проекте этот файлик свой был и там нужные варнинги были понижены в уровне и отключены. - fk0(15.01.2021 11:28)
- Не разбираюсь в мелкочиповских компиляторах. По форуму сложилось впечатление, что они кривые. Как у них отключаются предупреждения и отключаются ли вообще — не в курсе, увы :-( - SciFi(15.01.2021 11:18)
- Кстати советую запомнить, я, например, длительное время не знал,
пока не обделался на этом, что в языке C есть три типа char: signed char, unsigned char и char. И это три разных типа. fk0(29 знак., 15.01.2021 11:37)
- Не могу понять как вот эти предупреждения отключить: FDA(193 знак., 15.01.2021 11:12)
- Нормальные предупреждения, абсолютно по делу. По сути режим C89
просто отключает эти предупреждения. Если вам нравится прятать
голову в песок, отключите их и в режиме C99, делов-то. - SciFi(15.01.2021 09:07)
- Вот таких ошибок тысячи. Что-то связано со строками. Как я понял,
для них надо использовать тип char, а в проекте везде типы uint8_t,
uint16_t и т.д. Плотно пока не разбирался. FDA(1 знак., 15.01.2021 08:56, ссылка)
- Не верю. В C99 нет или почти нет изменений не совместимых с C89. - fk0(14.01.2021 23:43)
- Тоже не верю. Ругань компилятора в студию. - SciFi(15.01.2021 08:14)