网站建设便宜的公司,传媒广告公司简介,网站主题及风格,seo发外链的网站目录
1.undef
2.条件编译#ifdef,#else和#endif
3.#ifndef
4.#if和#elif
5.预定义宏
6.#line和#error
7.#pragma
1.undef
#undef指令用于取消已定义的#define指令 #define LIMIT 400 #undef LIMIT 如果想使用一个名称但又不确定之前是否已经用过#xff0c;为了安全起…
目录
1.undef
2.条件编译#ifdef,#else和#endif
3.#ifndef
4.#if和#elif
5.预定义宏
6.#line和#error
7.#pragma
1.undef
#undef指令用于取消已定义的#define指令 #define LIMIT 400 #undef LIMIT 如果想使用一个名称但又不确定之前是否已经用过为了安全起见可以使用undef 2.条件编译#ifdef,#else和#endif #ifdef MAVIS //如果有用#define 定义MAVIS,则执行一下命令 #include horse.h #define STABLES 5 #else //如果没有用#define 定义MAVIS,则执行一下命令 #include cow.h #define STABLES 15 #endif //结束 #ifdef指令说明如果预处理器已定义了后面的标识符则执行#else或#endif指令之前的所有指令并编译C代码。如果预处理器未定义标识符且有#else指令则执行#else和#endif指令之间的所有代码
这里逻辑和if else的概念很像但它们的区别在于预处理器指令不识别用于标记块的花括号因此它使用#else和#endif来标识指令块 3.#ifndef
#ifndef指令与#ifdef指令用法一样也可以配合#else和#endif使用不同的是#ifndef指令判断后面的标识符是否是未定义的
通常包含头文件时其中的文件可能包含了相同宏定义。#ifndef指令可以防止相同的宏被重复定义。在首次定义一个宏的头文件中使用#ifndef指令激活定义随后在其他头文件中的定义都被忽略
#ifndef指令还通常用于防止多次包含一个文件。 #ifndef THINGS_H_ #define THINGS_H_ #endif 假设该文件被多次包含当预处理器首次发现该文件被包含时THINGS_H_是未定义的所以定义了THINGS_H_并接着处理该文件的其他部分。在预处理器第二次发现该文件被包含的时候THINGS_H_是已定义的所以预处理器会跳过该文件的其他部分 #ifndef THINGS_H_ #define THINGS_H_ … Sturct … 头文件其他部分 #endif 4.#if和#elif
#if后面跟整型常量表达式如果表达式为非零则表达式为真。#if #else和if else用法相似 #if SYS 1 #include ibmpc.h #elif SYS 2 #include vax.h #elif defined(IBMPC) #include mac.h ///这里defined是一个预处理运算符如果它的参数使用#defined定义过多返回1否则返回0 … #else #include general.h #endif 5.预定义宏 _DATE_ 预处理的日期‘Mmm dd yyyy’字符串字面量 _FILE_ 表示当前源代码文件名的字符串字面量 _LINE_ 表示当前源代码文件中行号的整型常量 _STDC 设置为1表示实现遵循C标准 _STDC_HOSTED 本机环境设置为1否则设置为0 _STDC_VERSION 支持C99标准设置为199901L支持C11标准设置为201112L _TIME_ 翻译代码的时间格式为“hh:mm:ss” _func_ 展开为一个代表函数名的字符串 6.#line和#error
#line指令重置#_LINE_和_FILE_红报告的行号和文件名
#line 10 cool.c //把行号重置为10把文件名重置为cool.c
#error指令让预处理器发出一条错误消息把消息包含指令中的文本
#error Not C11 7.#pragma
#pragma把编译器指令放入源代码中。
#pragma c9x on//让编译器支持C9X
C99还提供——Pragma预处理器运算符该运算符把字符串转换成普通的编译指示
_Pragma(c9x on) 相当于 #pragma c9x on 好了朋友们我们今天的内容到这就结束了今天的内容到这里就结束了如果有啥不会的朋友记得论坛里面提问哈~
如果朋友你感觉文章的内容对你有帮助可以点赞关注文章和专栏以及关注我哈嘿嘿嘿我会定期更新文章的谢谢朋友你的支持哈