zoukankan      html  css  js  c++  java
  • 宏表达式与函数、#undef、条件编译、

    宏表达式在预编译期被处理,编译器不知道宏表达式的存在。

    宏表达式没有任何的调用开销

    宏表达式中不能出现递归定义。

    C语言中强大的内置宏

    __FILE__:被编译的文件名 //双底线
    __LINE__:当前行号
    __DATE__:编译时的日期
    __TIME__:编译时的时间
    __STDC__:编译器是否遵循标准C规范
    
    eg:printf("%s,%d Enter main()...
    ",__FILE__,__LINE__);

    注意:宏定义对空格比较敏感

    #define f (x) ((x)-1)//Error,定义了个f,它需要被替换为x,但后面又有个((x)-1)没有任何意义

    #undef 取消前面定义的宏

    #undef _MIN_

    条件编译是预编译指令命令,用于控制是否编译某段代码。

    条件编译的意义:

    1.条件编译使得我们可以按不同的条件编译不同的代码段,因而可以产生不同的目标代码。

    2.#if...#else....#endif被预编译器处理;而if...else语句被编译器处理,必然被编译进目标代码。

    #error的用法:

    #error用于生成一个编译错误信息,并停止编译。

    语法:#error message  //注:message不需要用双引号包围

    #pragma message

    message参数在大多数的编译器中都有相似的实现

    message编译时输出信息到编译输出窗口中

    message可用于代码的版本控制

    #pragma message("compile Android ADK 2.0...")

  • 相关阅读:
    Linux下使用mail发送邮件
    Thirft框架介绍
    当谈论设备指纹时,我们到底在说什么?(转)
    设备指纹(Device Fingerprinting)是什么?
    搭建RESTful API 之 实现WSGI服务的URL映射
    OpenStack设计与实现5——RESTful API和WSGI
    Charles使用
    iBeacon室内定位原理解析【转】
    docker安装
    chase
  • 原文地址:https://www.cnblogs.com/Caden-liu8888/p/7526783.html
Copyright © 2011-2022 走看看