Название: Разделители разрядов Отправлено: juvf от Апрель 21, 2021, 12:23 Qt5.15.1, QtC 4.13.2,
код int asd = 0x1234'5678; подсветка в QtC ошибка синтаксиса, при компиляции ошибка ..\main_display.c:821:19: error: missing terminating ' character int asd = 0x1234'5678; ^~~~~~ Пару лет назад использовал апострофы для разделения разрядов в QtC. 1) Как в мингвСИ заставить компилятор понимать апострофы? 3) Как креатору объяснить, что на дворе 2021 и апострофы с 14 года не ошибка синтаксиса? Название: Re: Разделители разрядов Отправлено: kambala от Апрель 21, 2021, 12:37 а нужный стандарт языка указан в .pro/.qbs/CMakeLists?
Название: Re: Разделители разрядов Отправлено: juvf от Апрель 21, 2021, 12:38 это как?
Название: Re: Разделители разрядов Отправлено: kambala от Апрель 21, 2021, 12:46 у разных компиляторов разный стандарт С++ по умолчанию.
например, в .pro файле надо писать CONFIG += c++14 Название: Re: Разделители разрядов Отправлено: juvf от Апрель 21, 2021, 12:57 в pro CONFIG += c++14 есть. С с++ всё нормально, сорри, поторопился. Компилятор умеет и даже QtC не ругается.
А вот с СИ проблема. И компилятор и QtC ругаетются. Пробовал CONFIG += c14 - не помогает Пробавал QMAKE_CFLAGS += -std=c14, пишет error: unrecognized command line option '-std=c14'; did you mean '-std=c11'? пробовал QMAKE_CFLAGS += -std=c11 - 11-ый не умеет апострафы. Название: Re: Разделители разрядов Отправлено: kambala от Апрель 21, 2021, 13:28 с11 и даже с17 не умеет в апострофы. может для начала надо смотреть на стандарт/спецификацию языка? :)
как в .pro указать стандарт для С не знаю, наверное только через QMAKE_CFLAGS += -std=c<smth> (это уже будет от компилятора зависеть) Название: Re: Разделители разрядов Отправлено: juvf от Апрель 21, 2021, 14:27 с11 и даже с17 не умеет в апострофы. может для начала надо смотреть на стандарт/спецификацию языка? :) Я а как сказал? Я где-то говорил обратное? Может для начала нужно почитать что я писал?Название: Re: Разделители разрядов Отправлено: juvf от Апрель 21, 2021, 14:41 Похоже мингв7.3 не умеет старше с11... ((( буду искать посвежее.
Название: Re: Разделители разрядов Отправлено: kambala от Апрель 21, 2021, 15:58 Я а как сказал? Я где-то говорил обратное? Может для начала нужно почитать что я писал? ты сказал только о том, что попробовал наугад, вместо того, чтобы заглянуть в справочник по языкуПохоже мингв7.3 не умеет старше с11... ((( буду искать посвежее. и чем это тебе поможет с апострофами?Название: Re: Разделители разрядов Отправлено: juvf от Апрель 22, 2021, 06:23 ты сказал только о том, что попробовал наугад, вместо того, чтобы заглянуть в справочник по языку где ты видишь, что я сказал "пробовал наугад"? Апострофы добавили в с++14, но.... например компилятор IAR... в IDE два диалекта c89 и с11. Выбираешь c11 и компилятор спокойно распознает апострофы-разделители. Некоторые считают с17/с18 не отдельный стандарт, а как с11 с дополнениями/исправлениями. Цитировать и чем это тебе поможет с апострофами? ты либо тролишь, либо жёстко тупишь. я же писал мингв7.3 не умеет старше с11. Нужна версия посвежее.... Цитировать даже с17 не умеет в апострофы пруф? Название: Re: Разделители разрядов Отправлено: kambala от Апрель 22, 2021, 11:48 в гугле забанили что ли? http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2244.htm поиском не могу найти ничего, связанного с апострофами. попытка компиляции клэнгом в Макос это подтверждает независимо от выбранного стандарта:
Код
Код: ❯ clang -std=c17 untitled.c Код: ❯ clang++ -std=c++17 untitled.c если твой IAR компилятор умеет что-то нестандартное, это его фичи/проблемы. (тут вспоминаем МС компилятор) Название: Re: Разделители разрядов Отправлено: juvf от Апрель 22, 2021, 12:31 Цитировать еще раз: стандарты С и С++ — это совершенно разные вещи, не надо их путать. Ещё раз "красное" и "рельсы" - это совершенно разные вещи, не надо их путать.Цитировать если твой IAR компилятор умеет что-то нестандартное IAR не мой... и я ни о каких нестандартных вещах не говорю. Иар работает в стандарте с17/с18Цитировать The IAR C/C++ Compiler for Arm supports the INCITS/ISO/IEC 9899:2018 standard, also known as C18. C18 addresses defects in C11 Вобщем пока в MinGW это не умеет.... что делать? Может MSVC умеет? Смотрим описание на MSVC Цитировать In September 2020, Microsoft announced C11 and C17 standards support in MSVC - ДАЛАДНА!!! Я думал что с11 уже 100 лет как включен, а его только в 2020 включили.... Пробую в онлайн компиляторе MSVC - а таки понимает апострофы.... Скачал, поставил только компилятор. Собрал холоворд - понимает апострофы.... конец банальный.... начал настраивать QtC.... коллега подключился к проекту... он собирает "порт" из этих же для linux на gcc7.3. У него переезд на посвежее - нереальный. Придется отложить до лучших времён. (( |