define定义的函数在if条件为假也能继续执行吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了define定义的函数在if条件为假也能继续执行吗?相关的知识,希望对你有一定的参考价值。

参考技术A 使用#define定义的函数是否可以在if条件为假的情况下继续执行。一般来说,#define是一个预处理器指令,它用于在编译之前替换文本。因此,它不是一个真正的函数,也不能返回一个值。
但是,有一种GNU扩展叫做语句表达式(statement expressions),它允许您在#define中使用if语句,并返回一个值。例如:
#define MAX(a,b) \
( int _a = (a), _b = (b); \
_a > _b ? _a : _b; )

这个例子中,MAX(a,b)会返回两个参数中较大的一个。如果您想在这个宏中加入一个if条件,例如判断参数是否为正数,您可以这样写:
#define MAX_POSITIVE(a,b) \
( int _a = (a), _b = (b); \ if (_a > 0 && _b > 0) \
_a > _b ? _a : _b; \ else -1; )

这个例子中,MAX_POSITIVE(a,b)会返回两个参数中较大的正数。如果两个参数都不是正数,则返回-1。
请注意,这种方法并不是标准的C语言特性,而是GNU编译器的扩展1。并不是所有的编译器都支持它。而且,在#define中使用复杂的逻辑可能会导致代码难以阅读和调试。
因此,在C语言中使用真正的函数和布尔值(true和false)可能是更好的选择

房上的猫:if选择结构

一.基本if结构:

技术分享

技术分享

 


 1.定义:if选择结构是根据条件判断之后再做处理的一种语法结构!
 2.逻辑:首先对条件进行判断
  >如果为真,则执行代码块
  >如果为假,执行代码块后面的部分
二.常用逻辑运算符:
 1.&&:与,并且----- 两个条件同时为真,则结果为真;两个条件有一个为假,则结果为假
 2.||:或,或者-----两个条件有一个为真,则结果为真;两个条件同时为假,则结果为假
 3.!:非-----条件为真时,结果为假;条件为假时,结果为真
 注:当运算符比较多,无法确定运算符执行的顺序时,可以使用小括号控制
三.多重:

技术分享

 


 1.多重if选择结构"不是"多个基本if选择结构简单地排列在一起
 2.else if块可以有多个或没有,需要几个else if块完全取决于需要
 3.else块最多有一个或没有,else块必须要放在else if块之后
 4.else if块是连续的,而不是跳跃的
  >如果条件之间存在连续关系,则else if块的顺序不是随意排列的,要么从大到小,要么从小到大.总之要有顺序的排列
四.嵌套:

技术分享

 


 1.只有当满足外层if选择结构的条件时,才会判断内层if条件
 2.else总是与它前面最近的那个缺少else的if配对
 3.if结构书写规范:
  >为了使if结构更加清晰,应该把每个if或else包含的代码块用大括号括起来
  >相匹配的一对if和else应该左对齐
  >内层的if结构相对于外层的if结构要有一定的缩进























以上是关于define定义的函数在if条件为假也能继续执行吗?的主要内容,如果未能解决你的问题,请参考以下文章

当条件为假时不执行其他函数的`if`语句

python学习笔记之条件分支和循环

关于C语言中#if的用法

为啥即使条件为假,这个“IF”也总是执行?

房上的猫:if选择结构

当条件为假时执行 If 语句 True 块