C语言干货-#define为什么使用do while(0) #C语言 #define #dowhile语句#电子工程师 #电子爱好者 - 郭天祥老师讲电子于20240424发布在抖音,已经收获了75.0万个喜欢,来抖音,记录美好生活!
C语言干货-#define使用do while(0) #C语言 #define #电子工程师 #代码编程 #电子爱好者 - 郭天祥老师于20240424发布在抖音,已经收获了5052个喜欢,来抖音,记录美好生活!
while(1)的写法是由于在C语言中,整数表示假,非表示真。1是非零的,所以条件永远成立,循环里面的代码就会一直执行。第二种方式:do-while无限循环。写法和while循环非常类似,示例代码如下:#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int main() { do { printf("do/while-无限循环\n");} ...
(4)让程序更加美观,由于 do-while 结构本质上是一个语句,因此需要使用分号作为结尾,以标识语句的结束。但是在没有加do-while(0)的宏里面,最后一条语句不能加上“;”。这样容易导致阅读障碍。 实例 以下是一个使用 do-while 结构定义宏的例子,用于计算两个数的最大值: #define MAX(a, b) do { \ if (...
C语言-define 与do{}while(0) 问题引出: 我们都知道宏定义#define只是简单替换,所以遇到复杂的带参数宏,必须很小心的为需要的参数加上括号“()”;同样碰到复杂的多条语句替代,虽然加{}可以将其封装成一个整体,但同时又有另一个问题:与语法习惯的冲突。比如:...
34. 【C语言初阶】分支和循环语句_do-while循环是C语言程序设计从入门到进阶【比特鹏哥c语言2024完整版视频教程】(c语言基础入门c语言软件安装C语言指针c语言考研C语言专升本C语言期末计算机二级C语言c语言的第34集视频,该合集共计180集,视频收藏或关注UP主,及时了解更
1.4 使用do{...}while(0) 这时候do{...}while(0)的价值就体现出来了,修改一下FOO的定义 #defineFOO(x) do {foo(x);bar(x); } while (0) 这样FOO,放入控制语句中就没有问题了。 1.5 为什么不是只使用大括号? 也许有人说:把foo(x);bar(x)用大括号括起来不就行了吗?比如这样定义: ...
为什么在内核中碰到很多 #define ... do{...} while(0) ? 有以下几点原因: 1、空语句在编译的时候会出现警告,所以有必要用#define FOO do{ } while(0) 2、给定一个基本块,可以在里面定义局部变量 3、为了能够在条件语句中使用复杂的宏定义。例如下面这段代码: ...
do while循环 流程图如下: 下来看个小示例 两个小示例的运行结果相同。 for循环 流程图如下: for循环的执行大致可分为4个步骤 执行表达式1,只执行一次 计算表示式2的值,看其是否为真(非零),如果为真就执行循环体部分,否则直接退出,执行for循环下面的语句 ...
在Linux内核中,经常会看到do{} while(0)这样的语句,许多人开始都会疑惑,认为do{} while(0)毫无意义,因为它只会执行一次,加不加do{} while(0)效果是完全一样的,其实do {}while(0)的用法主要用于宏定义中。 这里用一个简单的宏来演示: #defineSAFE_FREE(p)do{free(p);p=NULL;}while(0) ...