例如assert.h
:
...
#ifdef NDEBUG
#define assert(_Expression) ((void)0)
#else /* NDEBUG */
...
此区域不会被#ifdef, #define, #endif
或#pragma once
投降。
我想定义自己的断言函数,所以我#undef
并创建它,但是当一个文件包含任何包含assert.h
之后的内容时,它会覆盖我之前创建的断言函数。 ..
例如:
#include "my_assert.hpp"
#include <iostream.h>
我的my_assert
将失效并使用assert.h
的定义。