【C语言高级操作】之蓦然回首那人却在灯火阑珊处

2023-12-29 21:20

本文主要是介绍【C语言高级操作】之蓦然回首那人却在灯火阑珊处,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

  • 1.表达式
    • warning: #174-D: expression has no effect

1.表达式

warning: #174-D: expression has no effect

字面意思表达式无效,恭喜你写了一个自认为对,但没有实际效果的bug
比如我写的

#define MDL_ADS112U04_AUTO_READ(port, recbuf)     \do                                              \{                                               \uint16_t usLen = WkUartRxChars(port, recbuf); \usLen;                                        \} while (0)

报错原因是本意是想用uslen来充当函数返回值,但实际没有达到目的。正确做法如果你也这么认为那和笔者犯了同样错误

这种问题只会提示waring,不会提示error,论看waring重要性

#define MDL_ADS112U04_AUTO_READ(port, recbuf)     \( do                                              \{                                               \uint16_t usLen = WkUartRxChars(port, recbuf); \usLen;                                        \} while (0))

bug1:do {}while(0) 大括号内的作用域作用不到小括号
bug2 : while(0)后面少分号
正确做法吐了,能不能编过还的看编译器

#define MDL_ADS112U04_AUTO_READ(port, recbuf)     \( do                                              \{                                               \uint16_t usLen = WkUartRxChars(port, recbuf); \usLen;                                        \} while (0);)

ARM compiler 和 GCC 不一样,very good
回顾以前博客链接我终于找到点蛛丝马迹
参考GNU C 扩展 表达式

括在括号中的复合语句可能显示为表达式 在 GNU C 中。这允许您使用循环、开关和局部变量 在表达式中。回想一下,复合语句是一系列被包围的语句 通过大括号;在此构造中,括号围绕大括号。为 例:({ int y = foo (); int z;if (y > 0) z = y;else z = - y;z; })
是一个有效的(尽管比必要的稍微复杂一些)表达式 对于 的绝对值

如果就想用GNU C 代码规范 直接百度就有

这篇关于【C语言高级操作】之蓦然回首那人却在灯火阑珊处的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/550767

相关文章

Java Stream流与使用操作指南

《JavaStream流与使用操作指南》Stream不是数据结构,而是一种高级的数据处理工具,允许你以声明式的方式处理数据集合,类似于SQL语句操作数据库,本文给大家介绍JavaStream流与使用... 目录一、什么是stream流二、创建stream流1.单列集合创建stream流2.双列集合创建str

Python正则表达式匹配和替换的操作指南

《Python正则表达式匹配和替换的操作指南》正则表达式是处理文本的强大工具,Python通过re模块提供了完整的正则表达式功能,本文将通过代码示例详细介绍Python中的正则匹配和替换操作,需要的朋... 目录基础语法导入re模块基本元字符常用匹配方法1. re.match() - 从字符串开头匹配2.

JavaScript中的高级调试方法全攻略指南

《JavaScript中的高级调试方法全攻略指南》什么是高级JavaScript调试技巧,它比console.log有何优势,如何使用断点调试定位问题,通过本文,我们将深入解答这些问题,带您从理论到实... 目录观点与案例结合观点1观点2观点3观点4观点5高级调试技巧详解实战案例断点调试:定位变量错误性能分

Java实现在Word文档中添加文本水印和图片水印的操作指南

《Java实现在Word文档中添加文本水印和图片水印的操作指南》在当今数字时代,文档的自动化处理与安全防护变得尤为重要,无论是为了保护版权、推广品牌,还是为了在文档中加入特定的标识,为Word文档添加... 目录引言Spire.Doc for Java:高效Word文档处理的利器代码实战:使用Java为Wo

从基础到高级详解Python数值格式化输出的完全指南

《从基础到高级详解Python数值格式化输出的完全指南》在数据分析、金融计算和科学报告领域,数值格式化是提升可读性和专业性的关键技术,本文将深入解析Python中数值格式化输出的相关方法,感兴趣的小伙... 目录引言:数值格式化的核心价值一、基础格式化方法1.1 三种核心格式化方式对比1.2 基础格式化示例

sysmain服务可以禁用吗? 电脑sysmain服务关闭后的影响与操作指南

《sysmain服务可以禁用吗?电脑sysmain服务关闭后的影响与操作指南》在Windows系统中,SysMain服务(原名Superfetch)作为一个旨在提升系统性能的关键组件,一直备受用户关... 在使用 Windows 系统时,有时候真有点像在「开盲盒」。全新安装系统后的「默认设置」,往往并不尽编

Python自动化处理PDF文档的操作完整指南

《Python自动化处理PDF文档的操作完整指南》在办公自动化中,PDF文档处理是一项常见需求,本文将介绍如何使用Python实现PDF文档的自动化处理,感兴趣的小伙伴可以跟随小编一起学习一下... 目录使用pymupdf读写PDF文件基本概念安装pymupdf提取文本内容提取图像添加水印使用pdfplum

GO语言短变量声明的实现示例

《GO语言短变量声明的实现示例》在Go语言中,短变量声明是一种简洁的变量声明方式,使用:=运算符,可以自动推断变量类型,下面就来具体介绍一下如何使用,感兴趣的可以了解一下... 目录基本语法功能特点与var的区别适用场景注意事项基本语法variableName := value功能特点1、自动类型推

GO语言中函数命名返回值的使用

《GO语言中函数命名返回值的使用》在Go语言中,函数可以为其返回值指定名称,这被称为命名返回值或命名返回参数,这种特性可以使代码更清晰,特别是在返回多个值时,感兴趣的可以了解一下... 目录基本语法函数命名返回特点代码示例命名特点基本语法func functionName(parameters) (nam

Python从Word文档中提取图片并生成PPT的操作代码

《Python从Word文档中提取图片并生成PPT的操作代码》在日常办公场景中,我们经常需要从Word文档中提取图片,并将这些图片整理到PowerPoint幻灯片中,手动完成这一任务既耗时又容易出错,... 目录引言背景与需求解决方案概述代码解析代码核心逻辑说明总结引言在日常办公场景中,我们经常需要从 W