C Macro assert - sonkoni/Koni-Wiki GitHub Wiki
์กฐ๊ฑด์ด ๊ฑฐ์ง(false)์ผ ๋ ํ๋ก๊ทธ๋จ ์ค๋จ. ์ฐธ(true)์ด๋ฉด ์งํ.
#ifdef NDEBUG
#define assert(condition) ((void)0)
#else
#define assert(condition) /*implementation defined*/
#endif
// assert(ํํ์)NDEBUG ๋งคํฌ๋ก๊ฐ ์ ์๋์ด ์์ผ๋ฉด assert ๋ ๋ฌด์๋๋ค.
#include <stdio.h>
#include <string.h>
#include <assert.h>
void copy(char *dest, char *src) {
assert(dest != NULL); // dest ๊ฐ NULL ์ด๋ฉด ์ค๋จ
assert(src != NULL); // src ๊ฐ NULL ์ด๋ฉด ์ค๋จ
strcpy(dest, src); // ๋ฌธ์์ด ๋ณต์ฌ
}
int main(int argc, char *argv[]) {
char s1[100];
char *s2 = "Hello, World!!";
copy(s1, s2); // ์ ์๋์
copy(NULL, s2); // ์๋ฌ
return 0;
}
//Assertion failed: (dest != NULL), function copy, file Untitled2.c, line 6.