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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
#1

Деректива assert - C++

16.11.2013, 02:36. Просмотров 368. Ответов 5
Метки нет (Все метки)

Как правильно?

C++
1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
#include <assert.h>
#define NDEBUG assert(n == 0);
 
 
int main() {
    int n=0;
    NDEBUG
    std::cout<<n;
return 0;
 
}
0
Миниатюры
Деректива assert  
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2013, 02:36
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Деректива assert (C++):

Деректива include - C++
можно ли как-то просмотреть содержимое подключаемой дерективы ? К примеру компилятор у меня Devcpp

Assert - C++
Помогите пожалуйста написать функцию ассерт в файле... не знаю как((( объяяяясните..вопрос жизни и смерти

assert.h - C++
Как понять часть после &quot;||&quot;? Оно выводит на экран, или куда то еще записывает ? assert(value == 0 || !&quot;Value not...

Необходимо помочь с след. функциями assert(), malloc(), iterator - C++
Здравствуйте! Есть вопрос по реализации некоторых функций. Написана программа стек в СИ + все возможные действия + доп. стек (корзина)....

Исключения, возврат кодов ошибок, assert и 1 вопрос про исключение. - C++
Как правильно выбирать в какой ситуации применять то, а в какой другое? Есть, конечно, очевидные ситуации, например, не открывается файл,...

Как исправить Debug Assert Failed в коде работы с матрицей? - C++
Здравствуйте, мне нужно сделать такое задание: Написать функцию для произвольного двухмерного классического массива с использованием...

5
stima
493 / 343 / 43
Регистрация: 22.03.2011
Сообщений: 1,104
Завершенные тесты: 2
16.11.2013, 02:42 #2
C++
1
2
3
4
5
6
7
8
9
10
#include <cassert>
#include <iostream>
 
int main()
{
    assert(false); //false == 0
    std::cout << "Hello world!" << std::endl;
 
    return 0; 
}
Ваирант 1 (DEBUG)

(LINUX) g++ -DDEBUG main.cpp && ./a.out
(MSVC) project->build debug

Вариант 2 (NDEBUG)

(LINUX) g++ -DNDEBUG main.cpp && ./a.out
(MSVC) project->build release
1
helloy
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 46
16.11.2013, 05:51  [ТС] #3
Цитата Сообщение от stima Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
9
10
#include <cassert>
#include <iostream>
 
int main()
{
    assert(false); //false == 0
    std::cout << "Hello world!" << std::endl;
 
    return 0; 
}
Ваирант 1 (DEBUG)

(LINUX) g++ -DDEBUG main.cpp && ./a.out
(MSVC) project->build debug

Вариант 2 (NDEBUG)

(LINUX) g++ -DNDEBUG main.cpp && ./a.out
(MSVC) project->build release
понял преимущества особенно для консоли(хоть и пишу в VS).
Стоит ли это использовать часто? или не стоит злоупотреблять?
0
0x10
2486 / 1661 / 249
Регистрация: 24.11.2012
Сообщений: 4,136
16.11.2013, 08:39 #4
Откуда задание? Еще не видел, чтобы assert обзывали директивой.
Цитата Сообщение от helloy Посмотреть сообщение
Стоит ли это использовать часто? или не стоит злоупотреблять?
Везде, где нужно выразить предположение программиста о некоторых условиях. Иначе говоря, assert фиксирует условия, которые при корректном коде должны выполняться всегда.
0
l2ded
80 / 68 / 11
Регистрация: 10.05.2011
Сообщений: 284
16.11.2013, 13:18 #5
Цитата Сообщение от 0x10 Посмотреть сообщение
Откуда задание? Еще не видел, чтобы assert обзывали директивой.
Эккель. Философия C++. Введение в стандартный C++. Питер.2004
0
salam
171 / 152 / 16
Регистрация: 10.07.2012
Сообщений: 751
16.11.2013, 13:42 #6
C++
1
#define NDEBUG // дальше можно ничего не писать
означает, что все assert-ы будут как будто удалены. никаких сообщений об ошибках выводится не будет.
используется, как уже сказали, когда вы точно знаете, чему должна быть равна данная переменная, и если это не так - фэйл. например, проверяете, что знаменатель дроби не равен 0.
ничего плохого в нем нет, кроме лишних проверок, которые он выполняет, но когда вы дебажите программу это абсолютно не важно. читал где-то, что сейчас не модно, ибо есть средства лучше.
0
16.11.2013, 13:42
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.11.2013, 13:42
Привет! Вот еще темы с ответами:

макрос assert() для считывания даных из файла из указаного диапазона - C++
Нужно считать даные из текстового файла и определить сколько есть чисел, букв, пробелов и т.д. Это всё я сделал. Но как использовать...

деректива use - Perl
вопрос как указать дерективе use искать в определенном месте по абсолютному пути, и исче как можно включать библиотеку в определенном...

текстовые файлы.деректива #define. - C#
Даны два текстовых файла с именами Name1 и Name2. Создать новый текстовый файл с именем Name3, являющийся объединением содержимого файлов...

Assert() Error - PHP
Здравствуйте , уважаемые форумчане!!! Возникла проблема с assert()... В-общем есть model.php &lt;?php


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.