zoukankan      html  css  js  c++  java
  • 各种预处理命令 笔记 #if #else #elif #define #undef

    #if 要求判断条件为常量表达式,不得包含变量。且返回值为整数。

    与 #else #elif #endif 使用。

    和 if else 的用法类似。

    例如:

     1 #include <stdio.h>
     2 
     3 #define M 100
     4 
     5 int main(){
     6 
     7     #if M==100
     8         printf("already
    ");
     9     #else
    10         #undef M
    11         #define M 10
    12     #endif // M
    13     printf("%d
    ", M);
    14     return 0;
    15 }

    运行结果: already 

          100

    #ifdef 用来判断某个宏是否定义,如果已定义则执行后面的代码。

    用法:

    1 #ifdef  宏名
    2 
    3     程序段 1
    4 
    5 #else 
    6     
    7     程序段 2
    8 
    9 #endif

    类似if的用法,若宏被定义,则执行程序段1,否则执行程序段2。

    小知识:

    //宏定义 #ifdef _WIN32 是由编译器(ml.exe/ml64.exe)内部定义的。

    //_WIN32:Defined for applications for Win32 and Win64. Always defined.

    //用来判断是否是WINDOWS平台

     1 #include <stdio.h>
     2 
     3 #define M 100
     4 
     5 int main(){
     6 
     7     #ifdef M
     8         printf("%d
    ", M);
     9     #else
    10         #undef M
    11         #define M 10
    12     #endif // M
    13 
    14     return 0;
    15 }
    康康代码

    复习一下:

    #include " " 的话,是从当前目录检索头文件,未检测到的话,再到系统路径检索。然后 #include< > 的话,是首先从系统路径下检索。

    所以如果自己编写了头文件(且放到当前目录下)的话,最好还是用双引号吧。。。

    #define 如果定义的话,其作用域是从文件开始到结尾。由预处理器来处理。

  • 相关阅读:
    Django之AJAX
    Django中的csrf相关装饰器
    Django的中间件及WSGI
    Django之Cookie和Session
    Django之ORM操作(重要)
    Django的View(视图)和路由系统
    Django之url上的include,URL命名和反向解析,命名空间
    Django中的tags,母版和继承,组件,静态文件相关,自定义simpletag和自定义inclusion_tag
    kvm 宿主机不兼容
    kvm io限制
  • 原文地址:https://www.cnblogs.com/Arrokoth/p/12238769.html
Copyright © 2011-2022 走看看