В Справочнике сказано:
Предопределенная константная переменная NULL имеет тип void. Она может быть присвоена переменным любых других фундаментальных типов без преобразования. Также допускается сравнение переменных фундаментальных типов со значением NULL |
Я это понял так, что у переменной типа bool фактически может быть три значения: true, false и NULL. Но вот при отладке обнаружил следующее:
Если bool-переменные test2 и test3 выдают одинаковые значения (false), то какой смысл предлагать использовать переменную NULL?
У меня в эксперте пока что предусмотрено сравнение bool-переменных со значениями (true, false, NULL), а также различная обработка этих bool-переменных в зависимости от их значений (true, false, NULL). Получается, что такой подход ущербен?
Утверждение о том, что у bool есть ТРИ значение не верно в корне.
Если не вдаваться в подробности сто NULL является красивым способом использования 0 в качестве параметра для функций или результатом этих функций (возможно и те только функций) равных 0.
К примеру вот такой вот код вернет тип того графика (CHART_BARS, CHART_CANDLES, CHART_LINE) на котором работает эксперт.
ChartGetInteger(NULL,CHART_MODE);
Yedelkin:
Получается, что такой подход ущербен?
про булевые переменные расказали уже всё, а подход таки нормален :)
http://ru.wikipedia.org/wiki/%D0%A2%D1%80%D0%BE%D0%B8%D1%87%D0%BD%D1%8B%D0%B9_%D0%BA%D0%BE%D0%BC%D0%BF%D1%8C%D1%8E%D1%82%D0%B5%D1%80
Спасибо всем огромное за чёткие разъяснения! Век живи - век учись!
про булевые переменные расказали уже всё, а подход таки нормален :)
ОК! Я имел ввиду "ущербность реализации троичной логики через bool-переменные", если можно так сказать. Придётся обойтись перечислениями типа enum, хотя поcле прочтения ссылки так и напрашивается фраза о новом фундаментальном типе aristo, предназначенном для хранения логических значений true (истина), false (ложь) и nothing (отсутствие значений true и false), числовое представление которых 1, -1 или 0 соответственно :)

- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Вы принимаете политику сайта и условия использования
В Справочнике сказано:
Я это понял так, что у переменной типа bool фактически может быть три значения: true, false и NULL. Но вот при отладке обнаружил следующее:
Если bool-переменные test2 и test3 выдают одинаковые значения (false), то какой смысл предлагать использовать переменную NULL?
У меня в эксперте пока что предусмотрено сравнение bool-переменных со значениями (true, false, NULL), а также различная обработка этих bool-переменных в зависимости от их значений (true, false, NULL). Получается, что такой подход ущербен?