Форум программистов, компьютерный форум, киберфорум
Наши страницы

assert.h - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблема с выходом из цикла http://www.cyberforum.ru/cpp-beginners/thread440445.html
#include <iostream> using namespace std; int main() { int element, new_element; //имеется массив, в который я вначале ввожу элементы(простые числа) char massiv; for(int i = 0; i < 3; i++)...
C++ Работа с файлами #include <iostream> #include <fstream> #include <stdio.h> #include <string.h> using namespace std; struct man // cруктура мужчин { char cename; //фамилия int number; ... http://www.cyberforum.ru/cpp-beginners/thread440433.html
Найти 2 минимальных елемента и наибольший делитель C++
Ребята помогите пожалуйста, я понимаю что наверняка где то туплю но все же дан массив . найти два минимальных элемента и их наибольший делитель. Заранее спасибо язык с++ #include <iostream>...
Как определить, что в COM-порт пришли данные? C++
Как определить, что в COM-порт пришли данные?
C++ Unnable to open... http://www.cyberforum.ru/cpp-beginners/thread440409.html
Доброго времени суток! Поставил на WS 7 C++ 3.1 (Запускаю через DOSBox). Не находит библиотеки и наборы функций (Unnable to open include file "stdio.h"). В "Directories..." настроено все...
C++ Площадь пересечения трехугольников Всем привет! Нужно решить вот эту задачку: Даны координаты вершин двух трехугольников. Эти трехугольники гарантированно пересекаются. Нужно написать программу, которая будет находить площадь... подробнее

Показать сообщение отдельно
Evg
Эксперт CАвтор FAQ
18448 / 6498 / 454
Регистрация: 30.03.2009
Сообщений: 18,122
Записей в блоге: 29
04.02.2012, 15:09
Весь этот изврат сделан только для того, чтобы в печати засветить строку "Value not good". Чтобы не лазить в исходники программы и не смотреть, что за код был написан в файле таком-то, строке такой-то.

Технически это выражается в то, что строковой литерал как бы является указателем (непустым), а над указателем допустима операция !. Таким образом логическое выражение !"abc" всегда равно true и потому на результат вычисления выражения в assert'е не влияет, но компилятор при построении кода его удаляет как мёртвый код (по правилу "x | 1 == x"). Т.е. с одной стороны в коде не остаётся никаких дополнительных проверок, с другой стороны в печати засвечивается требуемая строка (потому что всё выражение, стоящее внутри assert'а, попадает в печать)

Добавлено через 2 минуты
Подразумевается, что вместо ничего не значащей фразы "Value not good" в коде написано что-то более осмысленное, помогающее понять смысл данного assert'а.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.