首页 > 其他分享 >#ifdef和#if的区别

#ifdef和#if的区别

时间:2022-11-16 13:24:08浏览次数:62  
标签:IFTEST1 IFTEST2 区别 ifdef endif printf define

ifdef和if的区别

ifdef

1)#ifdef只是判断后面的标识符有没有定义,而不在乎标识符的值,标识符是0是1对它来说都没有区别,只要预先定义了,执行#ifdef后的代码;

2)#ifdef是和#else搭配使用的,没有#elif搭配之说;

3)#ifdef必须要有#endif配合使用;

#define IFTEST1        0
#define IFTEST2        1

int main()
{
#ifdef IFTEST1
    printf("ifdef: %d\n", IFTEST1);
#else
    printf("ifdef: not defined!\n");
#endif
    return 0;
}

输出:ifdef:0

if

1)#if是要判断它后面表达式真假的,是真才执行#if后的代码;

2)#if和#elif搭配使用,这就可以用多种条件编译选择;

3)#if也是必须要以#endif配合使用。

#define IFTEST1        0
#define IFTEST2        1

int main()
{
#if IFTEST1         //为假,不执行
    printf("if : %d\n", IFTEST1);
#elif IFTEST2       //为真,执行
    printf("if : %d!\n", IFTEST2);
#else
    printf("if : not true!\n");
#endif
    return 0;
}

输出 if:1

标签:IFTEST1,IFTEST2,区别,ifdef,endif,printf,define
From: https://www.cnblogs.com/amxiang/p/16895544.html

相关文章

  • 工业控制:PLC和SCADA的关系与区别
    对于控制工程领域的新手来说,一个常见的问题是:“PLC和SCADA有什么区别?它们之间的区别在于PLC是基于硬件的,而SCADA是基于软件的。PLC和SCADA都用于监测和控制许多不同行业的......
  • shell脚本---$()和${}区别
    转载:https://blog.csdn.net/itworld123/article/details/125447252一、$()$() 小括号里面是Linux命令,作用就是执行里面的命令后返回执行的结果;和``(反引号)作用一样。......
  • js定义函数的三种方法及区别
    1函数定义:2functiontest(){};3函数表达式|匿名函数4vartest=function(){};5构造函数6vartest=newFunction('a','b','函数体');functio......
  • mips mipsel mips64el 区别
    Debiancurrentlyprovides3ports,'mips','mipsel',and'mips64el'.The'mips'and'mipsel'portsarerespectivelybigandlittleendianvariants,usingtheO......
  • C++中::和:, .和->的作用和区别
    符号::和:的作用和区别::是作用域运算符,A::B表示作用域A中的-名称B,A可以是名字空间、类、结构;类作用域操作符“::”指明了成员函数所属的类。如:M::f(s)就表示f(s)是......
  • bind:tap与 catcg:tap 的区别
    介绍事件bindtap和catchtap都属于点击事件,绑定之后,点击组件是可以触发这个函数的。区别bindtap:子元素使用bindtap绑定事件后,执行的时候,会冒泡到父元素(触发父元......
  • Vue的computed和watch的区别是什么?
    一、computed介绍computed用来监控自己定义的变量,该变量在data内没有声明,直接在computed里面定义,页面上可直接使用。//基础使用{{msg}}<inputv-model="name"/>......
  • MySQL InnooDB引擎之并发事务问题以及隔离级别的作用和区别
    最近在复习MySQL事务,但网上很多博客和资料可以说讲的不是模棱两可就是只有文字描述不够形象易懂,下面通过我的学习来详细讲一讲事务并发都会引起哪些问题?以及隔离级别是什么......
  • Modbus协议-使用串行接口的区别
    一、接口的电子特性1、RS232:传输电平信号接口的信号电平值较高(信号“1”为“-3V至-15V”,信号“0”为“3至15V”),易损坏接口电路的芯片,又因为与TTL电平(0“<0.8v”,1“>2......
  • 深拷贝和浅拷贝的区别
    前言 这段时间在看设计模式方面的知识,在看到原型模式的一篇,讲到拷贝对象这个用到MemberwiseClone方法 --浅拷贝下面来复习一下拷贝 及拷贝内容{......