The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]



Индекс форумов
Составление сообщения

Исходное сообщение
"Выпуск ControlFlag 1.0, инструмента для выявления ошибок в к..."
Отправлено Аноним, 20-Ноя-21 13:00 
> var.my_flag = 2;
> if(var.my_flag) {

если ты проверяешь значение как if(x){ ... }, значит ты проверяешь его на "не ноль".
напр., if (ptr) { *ptr = VAL; } -- это указатель;

на ноль или NULL ты его проверяешь как if (!ptr) {...}.

таким образом проверяются только целочисленные значения и указатели.

значения с плавающей точкой никогда так не проверяются, потому что машинный ноль -- не ноль.
все действительные значения проверяются операторами сравнения.
всегда.


> var.my_flag = 2;

эта строка сразу выглядит ошибкой.
потому что название my_flag подразумевает ноль и не-ноль, причём не-ноль в сях обычно пишется 1.
другие ненулевые значения собьют с толку программистов, которые будут работать с кодом.
поэтому не-ноль -- это всегда 1.

если же ты присваиваешь значению 2, значит ты не считаешь значение булевым.
(и ты не считаешь его действительным.  чтобы присвоить действительное значение, писать надо с десятичной точкой x = 2.0, x = 0.0 или x = .0).

если ты всё-таки хочешь использовать его как флаг, но при этом он обязательно должен уметь содержать разные ненулевые значения, то тебе следует оставить комментарий с пояснением в месте определения поля.


сишный стандарт -- он для людей, занимающихся разработкой системного или компактного ПО.
ты же стараешься изготовить некий newspeak (известный также как "новояз"), который лишит людей возможности делать ошибки и писать неправильные вещи, так что любой дурак сможет написать программу любой сложности.
все начинающие этим страдают.
поэтому правило: "создай систему, которой сможет пользоваться даже дурак, и только дурак захочет ею пользоваться" (с).

тебе надо заняться друими вещами, вроде того же раста, предназначенного не столько для программистов, сколько для кодеров, чья работа -- без особых раздумий кодировать алгоритмы, спускаемые сениорами сверху.

 

Ваше сообщение
Имя*:
EMail:
Для отправки ответов на email укажите знак ! перед адресом, например, !user@host.ru (!! - не показывать email).
Более тонкая настройка отправки ответов производится в профиле зарегистрированного участника форума.
Заголовок*:
Сообщение*:
  Введите код, изображенный на картинке: КОД
 
При общении не допускается: неуважительное отношение к собеседнику, хамство, унизительное обращение, ненормативная лексика, переход на личности, агрессивное поведение, обесценивание собеседника, провоцирование флейма голословными и заведомо ложными заявлениями. Не отвечайте на сообщения, явно нарушающие правила - удаляются не только сами нарушения, но и все ответы на них. Лог модерирования.



Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру