#undef命令取消一个先前已定义的宏变量, 譬如一个用#define定义的变量.
在此程序中,我们将取消在先前程序中对预处理器的定义。
得到如下错误消息:
未定义符号 ‘MAX’
初始值设定项太多
在此程序中对 MAX 定义后又取消了定义。编译该程序时报错。由于未定义 MAX,char name[MAX] 的数组大小不可用,因此编译器发出第二个错误消息。
相关文章:
- 预处理命令(#)(##)
- #,## #和##操作符是和#define宏使用的.使用#使在#后的首个参数返回为一个带引号的字符串.例如,命令...
- 宏定义运用define
- 语法: #define macro-name replacement-string #define命令用于把指定的字符串替换文件中的宏名称.也就是说,#define使编译器把文件中每一个macro-name替换为replacement-string.替换的字符串结束于行末.这里是一个经典的#define应用(至少是在C中):...
- 条件编译用法
- #if,#ifdef,#ifndef,#else,#elif,#endif 这些命令让编译器进行简单的逻辑控制.当一个文件被编译时,你可以使用这些命令使某些行保留或者是去处....
- #include作用
- 本命令包含一个文件并在当前位置插入.两种语法的主要不同之处是在于,如果filename括在尖括号中,那么编译器不知道如何搜索它.如果它括在引号中,那么编译器可以简单的搜索到文件.两种搜索的方式是由编译器决定的,一般尖括号意味着在标准库目录中搜索,引号就表示在当前目录中搜索.Thespiffynew整洁的新C++#include目录不需要直接映射到filenames,至少对于标准库是这样.这就是你有时能够成功编译以下命令的原因...
- #pragma作用
- #pragma命令可以让编程者让编译器执行某些事. 因为#pragma命令的执行很特殊,不同的编译器使用有所不同. 一个选项可以跟踪程序的执行....
- __FILE__、__LINE__和#line用法
- __FILE__用以指示本行语句所在源文件的文件名,举例如下(1.cpp):...
- #error作用
- #error命令是C/C++语言的预处理命令之一,当预处理器预处理到#error命令时将停止编译并输出用户自定义的错误消息。...
- 应该使用 NULL 还是 0
- C++ 里,NULL 的定义就是 0,所以到底使用哪个只是个审美问题。我个人倾向于避免使用宏,所以我使用 0。还有个问题是,有些人误以为 NULL 和 0 并不相同,并且/或者以为 NULL 不是整数。在标准前的代码里,NULL 有时被定义成不恰当的东西,因此不得不避免使用它。不过现今这已不常见。如果你必须给空指针起个名字,那就叫它 nullptr;C++0x 中将会这么叫。届时,“nullptr”将会是个关键字。...
- assert宏运用
- assert()是一个宏定义,在头文件中中,主要用来调试代码用,下面写一个数组下标越界代码测试。...
- math数学函数库中的宏
- 数学函数头文件中定义常见宏,先记录下来。HUGE_VAL:表示正的double常量, 代表正的无穷大HUGE_VALF:表示浮点类型的正值无穷大HUGE_VALL:表示long double?类型的正的无穷大INFINITY:表示浮点类型(float)正的无穷大NAN:表示无效数字,即不是一个数FP_INFINITE:表示浮点类型的无穷大FP_NAN:表示无效数据FP_NORMAL:表示正常状态FP_SUBNORMAL:表示异常状态FP_ZERO:表示浮点类型的0FP_FAST_FMA:表示和fma()函数同样的效果FP_FAST_FMAF:表示浮点类型的FP_FAST_FMAFP_FAST_FMAL:表示long double类型的FP_FAST_FMAFP_ILOGB0:表示ilogb(x)函数的x参数为0时,函数的返回值FP_ILOGBNAN:表示ilogb(x)函数的x参数为NAN时,函数的返回值MATH_ERRN0:表示数学错误,整数1MATH_ERREXCEPT:表示数学异常错误,整数2...