zoukankan      html  css  js  c++  java
  • C语言-第18课

    第18课 - #error#line

     

    1. #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 ", COMMAND);

        printf("%s ", CONST_NAME1);

        printf("%s ", CONST_NAME2);

        return 0;

    }

    gcc  -DCOMMAND=”TestCommand” test.c

    这里我们也要区分#ifndef#ifdef

     

    1. #line的用法

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

    用法:#line number filename   注:filename可省略。

    line编译指示字的本质是重定义__LINE____FILE__

     

    例子:重定义行号和文件名

    #include <stdio.h>

    #line 14 "Hello.c"  //程序的下一行变成了第14行,改程序的名字变成了"Hello.c"

    #define CONST_NAME1 "CONST_NAME1"

    #define CONST_NAME2 "CONST_NAME2"

    void f()

    {

        return 0;

    }

    int main()

    {

        printf("%s ", CONST_NAME1);

        printf("%s ", CONST_NAME2);

        printf("%d ", __LINE__);

        printf("%s ", __FILE__);   

        f();

        return 0;

    }

    通过这种方式,我们可以在别人程序的基础上进行重新的编程,完成只是对自己的文件的调试。

  • 相关阅读:
    AtCoder Beginner Contest 113 D Number of Amidakuji
    UVA
    mt19937 -- 高质量随机数
    牛客网NOIP赛前集训营-提高组(第七场)C 洞穴
    牛客OI周赛4-提高组 C 战争(war)
    牛客OI周赛4-提高组 B 最后的晚餐(dinner)
    bzoj 4318 || 洛谷P1654 OSU!
    Tourists Codeforces
    bzoj 1791 [Ioi2008]Island 岛屿
    洛谷 P2231 [HNOI2002]跳蚤
  • 原文地址:https://www.cnblogs.com/free-1122/p/9720720.html
Copyright © 2011-2022 走看看