第18课 - #error和#line

本文介绍了C语言中的预处理指令#error和#warning的用法。#error用于生成自定义的编译错误并停止编译,而#warning则产生编译警告但不阻止编译继续。此外,还讲解了#line指令如何用来强制设定新的行号和(可选的)文件名,以及它如何影响__LINE__和__FILE__宏的值。
摘要由CSDN通过智能技术生成

-------------------------------------资源来源于网络,仅供自学使用,如有侵权,联系我必删.

 

#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;
}

 

 

第二:

#line 的用法

 #line 用于强制指定新的行号和编译文件名 , 并对源程序的代码重新编号

                               #line number filenam

                              注意 :filename可省略

     #line 编译指示字的本质是重定义__LINE__ 和__FILE__

 

 

重定义行号和文件名

#include <stdio.h>

//重新定义行号和代码所在文件
//下面代码放在Hello.c的第14行开始编译
#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;
}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值