zoukankan      html  css  js  c++  java
  • 一道面试题: 预处理器标识#error的目的是什么?

    编译程序时,只要遇到 #error 就会跳出一个编译错误,既然是编译错误,要它干嘛呢?其目的就是保证程序是按照你所设想的那样进行编译的。

    下面举个例子:
    程序中往往有很多的预处理指令
    #ifdef XXX
    ...
    #else

    #endif

    当程序比较大时,往往有些宏定义是在外部指定的(如makefile),或是在系统头文件中指定的,当你不太确定当前是否定义了 XXX 时,就可以改成如下这样进行编译:

    #ifdef XXX
    ...
    #error "XXX has been defined"

    #else

    #endif

    这样,如果编译时出现错误,输出了XXX has been defined,表明宏XXX已经被定义了。


    用处就是这样,是不是感觉很没有用处?

  • 相关阅读:
    bzoj2434: [Noi2011]阿狸的打字机
    bzoj2830: [Shoi2012]随机树
    题解,作业*2
    bzoj1901: Zju2112 Dynamic Rankings
    luogu P4178 Tree
    CF1042C Array Product 分类讨论+贪心
    CF946D Timetable 动态规划
    CF597C Subsequences 树状数组 + 动态规划
    CF912D Fishes 期望 + 贪心
    bzoj 4321 queue2 dp
  • 原文地址:https://www.cnblogs.com/rollenholt/p/2422032.html
Copyright © 2011-2022 走看看