The OpenNET Project / Index page

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



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

Почему-то многие это обстоятельство упускают из вида

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

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

char * pStr = NULL;

// < ... >

// исключается раскрытие и проверка *pStr, если pStr == NULL ( pStr == FALSE )
if ( pStr && *pStr )
{
    // что-то делаем, если длина строки больше 0 ( строка не равна "" )
}

Ну, и классический пример - безопасное копирование одной строки в другую без затрат на проверку указателей и размерностей массивов.
#include <stdio.h>

int main()
{
    char pSrc[] = "Hello world!";
    char pDst[ sizeof pSrc ];
    
    char *ps = pSrc;
    char *pd = pDst;

    while ( *pd++ = *ps++ );

    puts( pDst );

    return 0;
}

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

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



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

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