assert
Материал из cppreference.com
|
|
Эта страница была переведена автоматически с английской версии вики используя Переводчик Google. Перевод может содержать ошибки и странные формулировки. Наведите курсор на текст, чтобы увидеть оригинал. Щёлкните здесь, чтобы увидеть английскую версию этой страницы. (Вы можете помочь в исправлении ошибок и улучшении перевода. Для инструкций перейдите по ссылке.) |
<metanoindex/>
<tbody> </tbody>| Определено в заголовочном файле <assert.h>
|
||
#ifdef NDEBUG #define assert(condition) ((void)0) #else #define assert(condition) /*implementation defined*/ #endif |
||
Определение
assert макросов зависит от другого макроса, NDEBUG, который не определен в стандартной библиотеке.Оригинал:
The definition of the macro
assert depends on another macro, NDEBUG, which is not defined by the standard library.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если
NDEBUG определяется как имя макроса в точке в исходном коде, где <assert.h> включен, то assert ничего не делает.Оригинал:
If
NDEBUG is defined as a macro name at the point in the source code where <assert.h> is included, then assert does nothing.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Если
NDEBUG не определен, то assert проверки, если ее аргумент (которые должны быть скалярного типа) сравнивает равна нулю. Если это произойдет, assert выводит конкретной реализации диагностической информации на стандартный вывод ошибок и вызывает abort(). Диагностическую информацию необходимо включить в текст expression, а также значений стандартных макросов __FILE__, __LINE__, и стандартные __func__ переменной.Оригинал:
If
NDEBUG is not defined, then assert checks if its argument (which must have scalar type) compares equal to zero. If it does, assert outputs implementation-specific diagnostic information on the standard error output and calls abort(). The diagnostic information is required to include the text of expression, as well as the values of the standard macros __FILE__, __LINE__, and the standard variable __func__.Текст был переведён автоматически используя Переводчик Google.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда.
Параметры
| condition | — | Выражение скалярного типа
Оригинал: expression of scalar type Текст был переведён автоматически используя Переводчик Google. Вы можете проверить и исправить перевод. Для инструкций щёлкните сюда. |
Возвращаемое значение
(Нет)
Пример
Запустить этот код
#include <stdio.h>
#include <assert.h>
int main (int argc, char **argv)
{
// Test if 0 is really equivalent to 0
assert (0 == 0);
// Test if 1 is different than 0...
assert (1 == 0);
return 0;
}
Вывод:
example: ex.c:10: int main(int, char**): Assertion `1 == 0' failed.
Aborted
См. также
| вызывает аварийное завершение программы (без очистки) (функция) |