Russian Qt Forum

Qt => Общие вопросы => Тема начата: tux от Март 09, 2020, 14:38



Название: Qt и clang
Отправлено: tux от Март 09, 2020, 14:38
Доброго времени суток!
Есть проект, в котором встречается инициализация такого:
Код:
    typedef struct tagRS_BLOCKINFO
    {
        int ncRSBlock;
        int ncAllCodeWord;
        int ncDataCodeWord;

    } RS_BLOCKINFO;

    typedef struct tagQR_VERSIONINFO
    {
        int nVersionNo;
        int ncAllCodeWord;

        int ncDataCodeWord[4];

        int ncAlignPoint;
        int nAlignPoint[6];

        RS_BLOCKINFO RS_BlockInfo1[4];
        RS_BLOCKINFO RS_BlockInfo2[4];

    } QR_VERSIONINFO;

    static QR_VERSIONINFO QR_VersonInfo[] = {
        {
            0
        },
        {
            1, // Ver.1
            26,   19,   16,   13,    9,
            0,   0,   0,   0,   0,   0,   0,
            1,  26,  19,
            1,  26,  16,
            1,  26,  13,
            1,  26,   9,
            0,   0,   0,
            0,   0,   0,
            0,   0,   0,
            0,   0,   0
        }
    };
Если собирать это с помощью gcc, то всё нормально.
Но, если попробовать собрать с помощью clang, то будет куча предупреждений, типа "suggest braces around initialization of subobject"
Понятно, что можно бороться с этим, с помощью опций компилятора, но это как-то неправильно. Как мне кажется.
Как с таким правильно бороться? Может можно что дописать в .pro файл?


Название: Re: Qt и clang
Отправлено: kambala от Март 09, 2020, 15:32
разве что стандартные опции предупреждений в настройках Креатора подправить


Название: Re: Qt и clang
Отправлено: tux от Март 09, 2020, 15:51
разве что стандартные опции предупреждений в настройках Креатора подправить
Это не очень решение. Если вдруг надо кому то передать проект, то нужно будет или README на эту тему писать или выслушивать жалобы на "а что у тебя тут 100500 предупреждений. Говнокодс..."
Пока вижу (как временное решение) написать программу, которая просто разберёт такой массив и иницализирует уже обычным методом. Да - код будет длиннее и запустаннее...
Может всё-таки есть какое-то элегантное решение?


Название: Re: Qt и clang
Отправлено: Igors от Март 09, 2020, 16:02
Это не очень решение. Если вдруг надо кому то передать проект, то нужно будет или README на эту тему писать или выслушивать жалобы на "а что у тебя тут 100500 предупреждений. Говнокодс..."
Значит не в те руки проект попал, напрасно давали. Настоящие эстеты понимают (и ценят) что приложение имеет солидный стаж


Название: Re: Qt и clang
Отправлено: tux от Март 09, 2020, 16:09
Ага. Т.е. предлагается "забить"? Ибо это "нинужно" истинным ценителям кода?
Не. Должно быть решение...


Название: Re: Qt и clang
Отправлено: Igors от Март 09, 2020, 16:42
Ага. Т.е. предлагается "забить"? Ибо это "нинужно" истинным ценителям кода?
Да. Старые структуры навевают теплые воспоминания и украшают новомодный но пижонский код  :)


Название: Re: Qt и clang
Отправлено: kambala от Март 09, 2020, 19:03
Цитировать
Понятно, что можно бороться с этим, с помощью опций компилятора
тогда или так (QMAKE_C[XX]FLAGS) или дописать дополнительные фигурные скобки


Название: Re: Qt и clang
Отправлено: tux от Март 09, 2020, 20:33
тогда или так (QMAKE_C[XX]FLAGS) или дописать дополнительные фигурные скобки
Дописал 100500 фигурных скобок.