Russian Qt Forum
Март 29, 2024, 15:51
Добро пожаловать,
Гость
. Пожалуйста,
войдите
или
зарегистрируйтесь
.
Вам не пришло
письмо с кодом активации?
1 час
1 день
1 неделя
1 месяц
Навсегда
Войти
Начало
Форум
WIKI (Вики)
FAQ
Помощь
Поиск
Войти
Регистрация
Russian Qt Forum
>
Forum
>
Qt
>
Общие вопросы
>
Разделители разрядов
Страниц: [
1
]
Вниз
« предыдущая тема
следующая тема »
Печать
Автор
Тема: Разделители разрядов (Прочитано 6813 раз)
juvf
Программист
Offline
Сообщений: 564
Разделители разрядов
«
:
Апрель 21, 2021, 12:23 »
Qt5.15.1, QtC 4.13.2,
mingw
MINGW
7.3.0-64
код
int asd = 0x1234'5678;
подсветка в QtC ошибка синтаксиса, при компиляции ошибка
..\main_display.c:821:19: error: missing terminating ' character
int asd = 0x1234'5678;
^~~~~~
Пару лет назад использовал апострофы для разделения разрядов в QtC.
1) Как в мингвСИ заставить компилятор понимать апострофы?
2) Как в мингвС++ заставить компилятор понимать апострофы?
3) Как креатору объяснить, что на дворе 2021 и апострофы с 14 года не ошибка синтаксиса?
«
Последнее редактирование: Апрель 21, 2021, 12:51 от juvf
»
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4725
Re: Разделители разрядов
«
Ответ #1 :
Апрель 21, 2021, 12:37 »
а нужный стандарт языка указан в .pro/.qbs/CMakeLists?
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
Offline
Сообщений: 564
Re: Разделители разрядов
«
Ответ #2 :
Апрель 21, 2021, 12:38 »
это как?
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4725
Re: Разделители разрядов
«
Ответ #3 :
Апрель 21, 2021, 12:46 »
у разных компиляторов разный стандарт С++ по умолчанию.
например, в .pro файле надо писать CONFIG += c++14
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
Offline
Сообщений: 564
Re: Разделители разрядов
«
Ответ #4 :
Апрель 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-ый не умеет апострафы.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4725
Re: Разделители разрядов
«
Ответ #5 :
Апрель 21, 2021, 13:28 »
с11 и даже с17 не умеет в апострофы. может для начала надо смотреть на стандарт/спецификацию языка?
как в .pro указать стандарт для С не знаю, наверное только через QMAKE_CFLAGS += -std=c<smth> (это уже будет от компилятора зависеть)
«
Последнее редактирование: Апрель 21, 2021, 13:31 от kambala
»
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
Offline
Сообщений: 564
Re: Разделители разрядов
«
Ответ #6 :
Апрель 21, 2021, 14:27 »
Цитата: kambala от Апрель 21, 2021, 13:28
с11 и даже с17 не умеет в апострофы. может для начала надо смотреть на стандарт/спецификацию языка?
Я а как сказал? Я где-то говорил обратное? Может для начала нужно почитать что я писал?
Записан
juvf
Программист
Offline
Сообщений: 564
Re: Разделители разрядов
«
Ответ #7 :
Апрель 21, 2021, 14:41 »
Похоже мингв7.3 не умеет старше с11... ((( буду искать посвежее.
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4725
Re: Разделители разрядов
«
Ответ #8 :
Апрель 21, 2021, 15:58 »
Цитата: juvf от Апрель 21, 2021, 14:27
Я а как сказал? Я где-то говорил обратное? Может для начала нужно почитать что я писал?
ты сказал только о том, что попробовал наугад, вместо того, чтобы заглянуть в справочник по языку
Цитата: juvf от Апрель 21, 2021, 14:41
Похоже мингв7.3 не умеет старше с11... ((( буду искать посвежее.
и чем это тебе поможет с апострофами?
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
Offline
Сообщений: 564
Re: Разделители разрядов
«
Ответ #9 :
Апрель 22, 2021, 06:23 »
Цитата: kambala от Апрель 21, 2021, 15:58
ты сказал только о том, что попробовал наугад, вместо того, чтобы заглянуть в справочник по языку
где ты видишь, что я сказал "пробовал наугад"? Апострофы добавили в с++14, но.... например компилятор IAR... в IDE два диалекта c89 и с11. Выбираешь c11 и компилятор спокойно распознает апострофы-разделители. Некоторые считают с17/с18 не отдельный стандарт, а как с11 с дополнениями/исправлениями.
Цитировать
и чем это тебе поможет с апострофами?
ты либо тролишь, либо жёстко тупишь. я же писал мингв7.3 не умеет старше с11. Нужна версия посвежее....
Цитировать
даже с17 не умеет в апострофы
пруф?
«
Последнее редактирование: Апрель 22, 2021, 08:37 от juvf
»
Записан
kambala
Джедай : наставник для всех
Offline
Сообщений: 4725
Re: Разделители разрядов
«
Ответ #10 :
Апрель 22, 2021, 11:48 »
в гугле забанили что ли?
http://www.open-std.org/jtc1/sc22/wg14/www/docs/n2244.htm
поиском не могу найти ничего, связанного с апострофами. попытка компиляции клэнгом в Макос это подтверждает независимо от выбранного стандарта:
Код
C++ (Qt)
int
main
(
)
{
int
a
=
123
'123;
return 0;
}
Код:
❯ clang -std=c17 untitled.c
untitled.c:3:14: warning: missing terminating ' character [-Winvalid-pp-token]
int a = 123'123;
^
untitled.c:3:14: error: expected ';' at end of declaration
int a = 123'123;
^
;
1 warning and 1 error generated.
при компиляции этого кода как С++ все, как ожидаемо, нормально:
Код:
❯ clang++ -std=c++17 untitled.c
clang: warning: treating 'c' input as 'c++' when in C++ mode, this behavior is deprecated [-Wdeprecated]
еще раз: стандарты С и С++ — это совершенно разные вещи, не надо их путать.
если твой IAR компилятор умеет что-то нестандартное, это его фичи/проблемы. (тут вспоминаем МС компилятор)
«
Последнее редактирование: Апрель 22, 2021, 11:51 от kambala
»
Записан
Изучением C++ вымощена дорога в Qt.
UTF-8 has been around since 1993 and Unicode 2.0 since 1996; if you have created any 8-bit character content since 1996 in anything other than UTF-8, then I hate you. © Matt Gallagher
juvf
Программист
Offline
Сообщений: 564
Re: Разделители разрядов
«
Ответ #11 :
Апрель 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. У него переезд на посвежее - нереальный. Придется отложить до лучших времён. ((
Записан
Страниц: [
1
]
Вверх
Печать
« предыдущая тема
следующая тема »
Перейти в:
Пожалуйста, выберите назначение:
-----------------------------
Qt
-----------------------------
=> Вопросы новичков
=> Уроки и статьи
=> Установка, сборка, отладка, тестирование
=> Общие вопросы
=> Пользовательский интерфейс (GUI)
=> Qt Quick
=> Model-View (MV)
=> Базы данных
=> Работа с сетью
=> Многопоточное программирование, процессы
=> Мультимедиа
=> 2D и 3D графика
=> OpenGL
=> Печать
=> Интернационализация, локализация
=> QSS
=> XML
=> Qt Script, QtWebKit
=> ActiveX
=> Qt Embedded
=> Дополнительные компоненты
=> Кладовая готовых решений
=> Вклад сообщества в Qt
=> Qt-инструментарий
-----------------------------
Программирование
-----------------------------
=> Общий
=> С/C++
=> Python
=> Алгоритмы
=> Базы данных
=> Разработка игр
-----------------------------
Компиляторы и платформы
-----------------------------
=> Linux
=> Windows
=> Mac OS X
=> Компиляторы
===> Visual C++
-----------------------------
Разное
-----------------------------
=> Новости
===> Новости Qt сообщества
===> Новости IT сферы
=> Говорилка
=> Юмор
=> Объявления
Загружается...