主题三 编译过程介绍----18.#error和#line
来源:互联网 发布:java优先级队列 编辑:程序博客网 时间:2024/05/18 02:47
#error
#error用于生成一个编译错误信息,并停止编译。
语法: #error message (message不需要用双引号包围)
#error用于程序员自定义特有的编译错误信息,对错误信息进行扩展
#warning类似地,用于生成编译警告,但不会停止编译。
#include <stdio.h>#define CONST_NAME1 "CONST_NAME1"#define CONST_NAME2 "CONST_NAME2"int main(){ #ifndef COMMAND #warning Compilation will be stoped ... #error No defined Constant Symbol COMMAND #endif printf("%s\n", COMMAND); printf("%s\n", CONST_NAME1); printf("%s\n", CONST_NAME2); return 0;}//编译命令:gcc _DCOMMAND=”command” -E test.c -o test.i//输出:warning:#warning Compilation will be stoped ...// Error:#error No defined Constant Symbol COMMAND
#line用法
#line用于强制指定新的的行号和编译文件名,并对源代码重新编号。
用法: #line number filename (filename可以省略)
#line本质是重定义_LINE_和_FILE_
#include <stdio.h>//本行的下一行号为14行,f()函数报错为20行,编译的文件名改为“Hello.c”#line 14 "Hello.c"#define CONST_NAME1 "CONST_NAME1"#define CONST_NAME2 "CONST_NAME2"void f(){ return 0;}int main(){ printf("%s\n", CONST_NAME1); printf("%s\n", CONST_NAME2); printf("%d\n", __LINE__); printf("%s\n", __FILE__); f(); return 0;} //输出:注释f()函数的return 0语句后;结果:27行,hello.c。//可以用于在进行二次开发时,用#line 1 “MyWork”,来定位自己开发的错误,或者找出出错代码的负责人。
阅读全文
0 0
- 主题三 编译过程介绍----18.#error和#line
- 主题三 编译过程介绍---- 15.编译过程简介
- 主题三 编译过程介绍----20.#和##运算符的使用分析
- 主题三 编译过程介绍----17.条件编译的使用分析
- 主题三 编译过程介绍---- 16.宏定义与使用分析
- 主题三 编译过程介绍----19#pragma的分析与使用
- #error、#warning和#line
- L18#error和#line
- 3.3、#error和#line
- #error和#line
- #error和#line
- boost编译过程介绍
- 三、gcc编译过程
- 有关编译过程中的error
- #error #warning 和 #line 用法分析
- 编译x264 错误:cc1: error: unrecognized command line option "-m32"
- C语言编译指示字#error #warning #line
- 编译出现 error: unrecognized command line option "-fconserve-stack"
- Python--random模块
- Tempter of the Bone
- PAT.1039.到底买不买
- 单片机中联合体的使用
- 如何使学术报告以及学术论文中的图片精美(不定期更新)
- 主题三 编译过程介绍----18.#error和#line
- zTree使用moveNode(target,treeNode,moveType,isSilent);
- I/0多路复用 select、poll、epoll之间的区别总结
- jsonp 跨域请求 VUE
- 采用代码注册广播接收者
- hdoj1025 Constructing Roads In JGShining's Kingdom (最长递增子序列 , map)
- Python基础-获取类属性
- 类型提升问题
- OpenGL材质的设置