#error #warning 和 #line 用法分析
2017-02-09 14:38
274 查看
#error #warning 用法分析
#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=\”Test Command.\” test.c 可以避免报错
#line 用法分析
#line用于强制指定新的行号和编译文件名,并对源程序的代码重新编号用法: #line number filename
注:filename可省略,filename为字符串
#line编译指示字的本质是重定义 _ _ LINE _ _ 和_ _ FILE _ _
从#line number filename语句的下一行开始,行号改为number的值。
举例说明:
#include <stdio.h> #line 14 "Hello.c" #define CONST_NAME1 "CONST_NAME1" #define CONST_NAME2 "CONST_NAME2" int main() { printf("%s\n", CONST_NAME1); printf("%s\n", CONST_NAME2); printf("%d\n", __LINE__); printf("%s\n", __FILE__); return 0; }
输出为行号=22,文件名为 Hello.c
相关文章推荐
- 错误分析:Internal Query Processor Error: The query processor ran out of stack space during query optimization.
- python实现的AES双向对称加密解密与用法分析
- error_reporting的用法
- RAISE_APPLICATION_ERROR用法
- strtok函数的用法与分析
- 数据绑定以及Container.DataItem几种方式与用法分析
- Sqlserver中Compute By子句用法分析
- GetLastErrord 的用法
- 数据绑定以及Container.DataItem几种方式与用法分析
- e-utils-WARNING **: No parent set, or default parent available for error dialog
- if...else的用法分析
- sizeof用法分析
- shell学习之- grep 用法简明分析
- struts中的error简单用法及国际化转换的方法
- ArrayList的用法分析
- 服务器500 Internal Server Error故障简要分析
- 从kernel源代码的角度分析signal的错误用法和注意事项
- oracle分析函数用法
- 分析SQL Server里函数的两种用法
- Linux下show “error attaching device data”的原因分析