`
deepfuture
  • 浏览: 4413819 次
  • 性别: Icon_minigender_1
  • 来自: 湛江
博客专栏
073ec2a9-85b7-3ebf-a3bb-c6361e6c6f64
SQLite源码剖析
浏览量:80142
1591c4b8-62f1-3d3e-9551-25c77465da96
WIN32汇编语言学习应用...
浏览量:70408
F5390db6-59dd-338f-ba18-4e93943ff06a
神奇的perl
浏览量:103614
Dac44363-8a80-3836-99aa-f7b7780fa6e2
lucene等搜索引擎解析...
浏览量:286638
Ec49a563-4109-3c69-9c83-8f6d068ba113
深入lucene3.5源码...
浏览量:15056
9b99bfc2-19c2-3346-9100-7f8879c731ce
VB.NET并行与分布式编...
浏览量:67847
B1db2af3-06b3-35bb-ac08-59ff2d1324b4
silverlight 5...
浏览量:32297
4a56b548-ab3d-35af-a984-e0781d142c23
算法下午茶系列
浏览量:46079
社区版块
存档分类
最新评论

C-#line和#error

阅读更多

1、

1)源代码:

test2.c

#line 1
int main(void){
printf("line 1\n");
printf("line 2\n");
printf("line 3\n");
printf("line 4\n");
printf("line 5\n");
printf("line 6\n");
printf("line 7\n");
printf("line 8\n");
#include "test1.c

 test1.c

 

#line 9 "test2.c"
#define LINUX
#ifdef WIN32
  printf("win32\n");   
#elif defined LINUX
  printf("linux %d %s\n",__LINE__,__FILE__);        
#else
  #error no flag define 
  //如果LINUX和WIN32没有定义,#error会显示错误信息,然后停止编译
#endif
}

  2)运行结果:

mysea@mysea-pc:~/test$ ./test2

line 1

line 2

line 3

line 4

line 5

line 6

line 7

line 8

linux 13 test2.c


 

2、#error表示停止编译,显示错误信息

3、#line 直接指定下一行的行号及文件名

1)指定行号

#line n

2)指定文件名和行号

#line n "filename"

4、源代码的#include "test1.c"和#line 9 "test2.c"表示:test2.c和test1.c实质属于一个C程序:test2。

1)注意这只是标注,如果要在编译时把test1.c包括进来,必须加上#include "test1.c

 

 

2)编译时,编译test2

 

 

 

mysea@mysea-pc:~/test$ gcc -o test2 test2.c

 


 

1
0
分享到:
评论

相关推荐

    Visual studio 编译器选项

    本文档旨在详细介绍Visual C++编译器的各种选项及其功能,帮助开发者更好地理解和利用这些配置来优化和调试他们的C++应用程序。 ##### @(指定编译器响应文件) **功能描述**:通过该选项可以指定一个包含其他编译...

    C语言函数库 C语言函数库和文件(完).doc

    C语言函数库是C编程中不可或缺的部分,它们包含...总之,理解和掌握C语言函数库的使用以及预处理指令的运用,对于编写高效、可维护的C程序至关重要。通过良好的代码组织和预处理技巧,可以提高开发效率,降低维护成本。

    Keil+C编译器常见警告与错误信息的解决方法[归类].pdf

    * IDENTIFIER EXPECTED:当 DEFINE 控制没有参数时产生本信息,DEFINE 需要一个参数作为标识符,这和C语言的规则相同。 * MEMORY SPACE EXHAUSTED:编译器不能分配足够的存储区来编译指定的源文件,如果始终出现这个...

    AzkabanAPI接口文档汇总

    - `error`: 如果登录尝试失败,则返回错误消息。 - `session.id`: 如果登录成功,则返回会话ID。 - **示例请求**: ```bash curl -k -X POST -d "action=login&username=azkaban&password=azkaban" ...

    sql导入数据库时出现ERROR at line 206: Unknown command '\''的解决方法

    sql导入数据库时出现ERROR at line 206: Unknown command '\'的解决方法 在 mysql 中,使用 mysqldump 工具导出数据库是一种常见的操作。然而,在使用 mysql 命令将导出的数据库文件导入目标数据库时,可能会出现 ...

    KEIL 常见编译错误大全

    致命错误信息具有特定格式:C51FATAL-ERROR–ACTION:<currentaction>LINE:<lineinwhichtheerrorisdetected>ERROR:<correspondingerrormessage>C51TERMIANTED。这个信息中包含两个关键部分,Action和Error。 Action...

    In Praise of the #Error Directive

    ### 在赞扬#Error指令中的重要知识点 #### 一、#Error 指令的基本概念与作用 在 C 语言编程中,预处理器指令是编译前处理...对于那些希望确保代码质量和一致性的开发者来说,`#error` 提供了一种简单而有效的方式。

    keil 错误 C51编译器鉴别错类型

    #### C_51FATAL_ERROR 这一错误类型表明在编译过程中遇到了致命性错误,这可能导致编译过程无法继续进行。错误消息中提到的“terminconsumedd”意味着编译器在处理源代码时遭遇了无法恢复的情况,如语法错误、内存...

    pip 错误unused-command-line-argument-hard-error-in-future解决办法

    在我的Mac Air上,用pip安装一些Python库时,偶尔就会遇到一些报错,关于“unused-command-line-argument-hard-error-in-future”,错误如下:复制代码 代码如下:cc -fno-strict-aliasing -fno-common -dynamic -...

    turboc-C语言-graphics.pdf

    本章将深入探讨如何利用Turboc的图形库进行C语言编程。 首先,Turboc集成的图形库是Borland Graphics Interface (BGI),它提供了一系列函数,使得开发者能够方便地在屏幕上绘制点、线、多边形、圆等图形,并实现...

    chuankouLINK/LOCATE RUN COMPLETE. 0 WARNING(S), 0 ERROR(S

    BL51 BANKED LINKER/LOCATER V6.22 10/13/2017 23:08:20 PAGE 1 BL51 BANKED LINKER/LOCATER V6.22, INVOKED BY: D:\51PROGRAM FILES\C51\BIN\BL51.EXE STARTUP.obj, chuankou.obj TO chuankou RAM... C:001AH LINE# ...

    关于的Uc小结

    以上内容涵盖了Unix C 编程中的一些基本概念和技巧,包括预处理指令的使用、头文件管理、环境变量设置以及常用的远程登录工具。希望这些知识点能够帮助读者更好地理解和掌握Unix C 编程的基础知识。

    C语言函数库和文件(完).pdf

    通过理解并熟练掌握函数库的管理和C语言的预处理机制,开发者能够更高效地组织和编写C程序,提高代码的可读性和可维护性,同时降低程序的编译时间和资源消耗。在实际编程过程中,合理运用这些技巧将有助于提升编程...

    vim c-support hotkeys

    `c-support.vim`插件通过其广泛的键盘映射和代码自动生成功能,极大地提升了C语言开发者的生产力。熟练掌握这些快捷键,能够显著提高编码效率,减少重复工作,并帮助开发者更快地完成项目。对于任何使用Vim进行C语言...

    零基础小白Python入门必看——编程基础概念.docx

    a,b,c=4,5,6 相当于 a=4,b=5,c=6 ### 常量 Python 不支持常量,只能约定常量的命名规则,以及在程序的逻辑上不对常量的值作出修改。 >>> print(max_speed) 120 >>> max_speed = 140 #实际上是可以进行更改的,...

    c语言预处理 - c语言最后一课.zip

    C语言预处理是C编程中的一个重要环节,它在编译过程的早期阶段执行,主要涉及宏定义、条件编译和包含文件等操作。这门“C语言预处理 - C语言最后一课”可能涵盖了一些关键概念和技巧,让我们深入探讨一下。 预...

    c++参考手册

    **预处理器**是C和C++编程语言中一个重要的组成部分,它在实际的编译工作开始之前对源代码进行预处理。预处理器的主要任务包括宏定义与展开、条件编译、文件包含以及错误信息的指示等。 #### 二、预处理器功能 1. ...

Global site tag (gtag.js) - Google Analytics