The OpenNET Project / Index page

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



"Выпуск ControlFlag 1.0, инструмента для выявления ошибок в коде на языке Си"
Версия для распечатки Пред. тема | След. тема
Форум Разговоры, обсуждение новостей
Исходное сообщение [ Отслеживать ]
Заметили полезную информацию ? Пожалуйста добавьте в FAQ на WIKI.
. "Выпуск ControlFlag 1.0, инструмента для выявления ошибок в к..." –1 +/
Сообщение от n00by (ok), 20-Ноя-21, 14:37 
>> по стандарту ложное значение 0, истинное не 0.
> Почему-то многие это обстоятельство упускают из вида

Потому что такого обстоятельства нет. На уровне АЛУ (процессора) есть флаги (нуля, переноса), они принимают два значения: 0 или 1. Из чего и следуют требования стандарта к типу _Bool и вольная интерпретация "истинное не 0" (т.е. человек интуитивно представляет себе результат сравнения достаточно хорошо для многих случаев, но в железе всё малость иначе).

> Основные философские положения классического "C":
> 1. Всё - есть int ( арифметика с указателями );
> 2. Всё, отличное от лжи, - истина ( TRUE != 0 );

На уровне железа результаты команд сравнения не хранятся в регистрах общего назначения, соответственно не имеют тип int. Современный стандарт Си абстрагируется от флагов, но определяет результат конверсии целого в тип _Bool как эквивалент Zero Flag. А в "классическом Си" никакого TRUE не было.

Ответить | Правка | Наверх | Cообщить модератору

Оглавление
Выпуск ControlFlag 1.0, инструмента для выявления ошибок в коде на языке Си, opennews, 19-Ноя-21, 16:42  [смотреть все]
Форумы | Темы | Пред. тема | След. тема



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

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