90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
|
|||||||||||
1 | |||||||||||
Битовые поля. Поля без типа и имени13.06.2017, 08:25. Показов 2440. Ответов 16
Метки нет (Все метки)
Вчера сделал очень интересную и болезненную ошибку (с точки зрения времени, так как искал я ее долго)... представьте структуру (битовое поле) с очень большим количеством переменных в ней... и вот там был такой косяк:
может кто-то объяснит... как и почему этот код компилируется? законно ли это на всех компиляторах или это только кривой MinGW (извините, я его не люблю по целому ряду причин) такое ест?
0
|
13.06.2017, 08:25 | |
Ответы с готовыми решениями:
16
Битовые поля и работа с двоичным числом без логических операций Невозможно выполнить выборку по имени поля (по номеру поля все работает) Получить значения элемента xml по заданному имени из поля типа Object Битовые операции, битовые поля. |
90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
|
|
13.06.2017, 08:35 [ТС] | 3 |
уупс.. ошибочка вышла... struct я действительно проглядел...
а вот без типов компилируется прекрасно! и в том то и дело, что стает вопрос... какого????
0
|
Любитель чаепитий
|
||||||
13.06.2017, 08:43 | 4 | |||||
да что вы говорите?!
http://rextester.com/NMJ26557
Код
source_file.cpp:5:7: error: ISO C++ forbids declaration of ‘type name’ with no type [-fpermissive] : 2; ^ какие флаги компиляции и какая версия mingw?
0
|
90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
|
||||||
13.06.2017, 08:49 [ТС] | 5 | |||||
в флагах ничего не менял, какие были в QtCreator, такие и стоят... MinGW 4.9.1 32bit
0
|
90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
|
|
13.06.2017, 09:07 [ТС] | 7 |
ну вы мне уже скинули ссылку на rextester, как бы там оно не компилируется.. осталось понять почему у меня такое компилируется))) так как вот это строка кода:
отняла у меня 3 часа жизни Добавлено через 9 минут в общем... компилятор (C:\Qt\Qt5.4.1\Tools\mingw491_32\bin\g++.exe) такой код кушает, так что проблема не в QtCreator (да и что он мог изменить), а в самом компиляторе... может расширение какое-то? а так даже великий и ужасный clang не ест такой код)))
0
|
90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
|
||||||
13.06.2017, 10:28 [ТС] | 9 | |||||
сейчас я напрочь сломаю всю систему))) запустил только что в RAD такой код (ничего не меняя в .h и на форме):
0
|
90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
|
|
13.06.2017, 10:30 [ТС] | 10 |
какой-там компилятор в RAD я не вникал... если не ошибаюсь - у них там свой какой-то... вот, но факт остается фактом... на моем компе (рабочем, я еще сегодня дома проверю), такой код имеет место быть и компилируется нормально...
0
|
19409 / 10028 / 2443
Регистрация: 30.01.2014
Сообщений: 17,678
|
|
13.06.2017, 10:40 | 11 |
0
|
90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
|
||||||
13.06.2017, 10:56 [ТС] | 12 | |||||
пожалуйста, весь вывод компилятора (компилятор из Qt, стоит еще раз отметить, что такой же код у меня компилируется и в RAD) для этого кода:
0
|
90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
|
|
13.06.2017, 16:21 [ТС] | 14 |
потому что дело не в компиляторе скорее всего... так как такой код компилится и в RAD и в QtCreator...
более того... он компилится не только на моем компьютере... только что проверял за соседним, тот же QtCreator и та же RAD (10.1 Berlin) и все компилилось... на счет компилятора в RAD: стоит галочка "Use 'classic' Borland compiler"
0
|
13.06.2017, 21:05 | 15 |
ДА фиг с ним, с борландовским компилятором. У тебя по логу из-под QtCreator'а запускается g++ (mingw). У меня gcc ни линуксовй, ни виндузовый это не едят
Добавлено через 1 минуту Опаньки. Под виндой я запускал версию из-под cygwin'а. Но вот взял и запустил чистый MinGW и там сожралось. Такое ощущение, что windows-версия gcc это жрёт для поддержки совместимости. Возможно с Borland'овским компилятором. Возможно, с чем-то ещё. У кого есть MSVC, проверьте пожалуйста Добавлено через 1 минуту Фиг-то там. Просто mingw у меня либо не работает, либо что-то ещё, но при этом не выдаёт никаких ошибок или сообщений Добавлено через 5 минут mingw с gcc-4.6.3 не жрёт, а mingw с gcc-4.8.1 не запускается
0
|
90 / 88 / 33
Регистрация: 20.07.2016
Сообщений: 403
|
|
13.06.2017, 22:59 [ТС] | 16 |
MVS 2017 плюется от такого кода еще в редакторе...
ну как бы что такой код не легален я вроде как понимал... я удивился от такого, что он скомпилился... и если кто-то объяснит почему - буду очень-очень рад)
0
|
Evg
|
14.06.2017, 22:14
Битовые поля. Поля без типа и имени
#17
|
0
|
14.06.2017, 22:14 | |
14.06.2017, 22:14 | |
Помогаю со студенческими работами здесь
17
вычисляемые поля - обработка зависит от типа поля? Передача поля в контроллер из вьюшки без пападания поля во вьюшку Insert без идентификаторов для поля типа SERIAL Битовые поля Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи | |||||
Как проводить научные вычисления на Python
InfoMaster 15.01.2025
Python стал одним из наиболее востребованных языков программирования в области научных вычислений благодаря своей простоте, гибкости и обширной экосистеме специализированных библиотек. Научные. . .
|
Создание игры типа Minecraft на PyGame/Python: пошаговое руководство
InfoMaster 15.01.2025
В данном руководстве мы рассмотрим процесс создания игры в стиле Minecraft с использованием библиотеки PyGame на языке программирования Python. Этот проект идеально подходит как для начинающих. . .
|
Как создать свою первую игру в стиле Doom на Unreal Engine
InfoMaster 15.01.2025
Разработка шутера от первого лица в стиле классического Doom представляет собой увлекательное путешествие в мир игрового программирования, где сочетаются творческий подход и технические навыки. . . .
|
Параллельное программирование: основные технологии и принципы
InfoMaster 15.01.2025
Введение в параллельное программирование
Параллельное программирование представляет собой фундаментальный подход к разработке программного обеспечения, который позволяет одновременно выполнять. . .
|
Как написать микросервис на C# с Kafka, MediatR, Redis и GitLab CI/CD
InfoMaster 15.01.2025
В современной разработке программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот подход позволяет разделить сложную систему. . .
|
Что такое CQRS и как это реализовать на C# с MediatR
InfoMaster 15.01.2025
Концепция CQRS и её роль в современной разработке
В современном мире разработки программного обеспечения архитектурные паттерны играют ключевую роль в создании масштабируемых и поддерживаемых. . .
|
Как настроить CI/CD с Azure DevOps
InfoMaster 15.01.2025
CI/ CD, или непрерывная интеграция и непрерывное развертывание, представляет собой современный подход к разработке программного обеспечения, который позволяет автоматизировать и оптимизировать процесс. . .
|
Как настроить CI/CD с помощью Jenkins
InfoMaster 15.01.2025
Введение в CI/ CD и Jenkins
В современной разработке программного обеспечения непрерывная интеграция (CI) и непрерывная доставка (CD) стали неотъемлемыми элементами процесса создания качественных. . .
|
Как написать микросервис на Go/Golang с Kafka, REST и GitHub CI/CD
InfoMaster 14.01.2025
Определение микросервиса, преимущества использования Go/ Golang
Микросервис – это архитектурный подход к разработке программного обеспечения, при котором приложение состоит из небольших, независимо. . .
|
Как написать микросервис с нуля на C# с RabbitMQ, CQRS, Swagger и CI/CD
InfoMaster 14.01.2025
В современном мире разработки программного обеспечения микросервисная архитектура стала стандартом де-факто для создания масштабируемых и гибких приложений. Этот архитектурный подход предполагает. . .
|
Как создать интернет-магазин на PHP и JavaScript
InfoMaster 14.01.2025
В современном мире электронная коммерция стала неотъемлемой частью бизнеса. Создание собственного интернет-магазина открывает широкие возможности для предпринимателей, позволяя достичь большей. . .
|
Как написать Тетрис на Ассемблере
InfoMaster 14.01.2025
Тетрис – одна из самых узнаваемых и популярных компьютерных игр, созданная в 1984 году советским программистом Алексеем Пажитновым. За прошедшие десятилетия она завоевала симпатии миллионы людей по. . .
|