Russian Qt Forum
Ноябрь 23, 2024, 19:01 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: 1 [2]   Вниз
  Печать  
Автор Тема: Предупреждение ISO C++ says that these are ambiguous...  (Прочитано 10854 раз)
Максим
Гость
« Ответ #15 : Август 08, 2016, 12:54 »

Здесь дело не в определении #define, а в месте использования NAK в коде. Возможно, NAK участвует в арифметических операциях или операциях сравнения с типом, отличным от int, например short.

дефайны я по мере необходимости вставляю в QByteArray, как-то так:
Код:
QByteArray outData;
    outData.resize(0);
    outData.append(SOH);
    outData.append(QString("P").toLocal8Bit()); // команда пароля
    outData.append(QString("1").toLocal8Bit()); // операнд сравнения с внутренним паролем
    outData.append(STX);
    outData.append(QString("(").toLocal8Bit());
    outData.append(pass.toLocal8Bit());
    outData.append(QString(")").toLocal8Bit());
    outData.append(ETX);
    outData.append(GetBCC(outData));
    return outData;

Но, если бы дело было в этом, то компилятор ругался на все дефайны, а в моём случае, только на некоторые. Например, из группы:
Код:
#define CR  0x0D
#define LF  0x0A
#define SOH 0x01
#define STX 0x02
#define ETX 0x03
#define EOT 0x04
#define ACK 0x06
#define NAK 0x15
он недоволен SOH, STX, ACK и NAK
Записан
Igors
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 11445


Просмотр профиля
« Ответ #16 : Август 08, 2016, 13:25 »

Но, если бы дело было в этом, то компилятор ругался на все дефайны, а в моём случае, только на некоторые.
Некоторые = которые используются? Приведите к char напр
Код
C++ (Qt)
#define NAK char(0x15)
Или в том месте где вставляете. Возможно он намекает что int может оказаться больше char
Записан
kai666_73
Крякер
****
Offline Offline

Сообщений: 319


Просмотр профиля
« Ответ #17 : Август 08, 2016, 13:30 »

Но, если бы дело было в этом, то компилятор ругался на все дефайны, а в моём случае, только на некоторые.
Некоторые = которые используются? Приведите к char напр
Код
C++ (Qt)
#define NAK char(0x15)
Или в том месте где вставляете. Возможно он намекает что int может оказаться больше char

Код:
#define NAK '\x15'
Записан
Максим
Гость
« Ответ #18 : Август 08, 2016, 13:34 »

Код:
#define NAK '\x15'
Да, это помогло. Хотя и не так красиво выглядит, как раньше.
Записан
Страниц: 1 [2]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.191 секунд. Запросов: 22.