Утверждения в C89? - PullRequest
       9

Утверждения в C89?

0 голосов
/ 01 февраля 2010

Я пишу C89 на MSFT Visual Studio 2010 Beta. Как я могу сделать утверждение, подобное ключевому слову Java assert? Я думаю, что мне нужно определить макрос, но я не уверен, как. (Похоже, что это было сделано раньше, поэтому я бы лучше использовал это, чем пытался накатить свое)

Вот предположение:

int assert(int truth_value) {
   // crash the program with an appropriate error message   
}

1 Ответ

1 голос
/ 01 февраля 2010

C89 имеет <assert.h>, который содержит макрос, который вы ищете.

#include <assert.h>
assert(expression);

Из документации:

Макрос assert () проверяет заданное выражение и, если оно ложно, вызывающий процесс завершен. Диагностическое сообщение записывается на stderr и вызывается функция abort (3), эффективно завершающая программу.

Если выражение истинно, макрос assert () ничего не делает.

...