C语言常见易忽视规则

【精华_2_】C语言常见易忘点大全,持续更新.... 初始化了数组中部分元素,其余未初始化的元素自动为0 函数 ftell 用于得到文件位置指针当前位置相对于文件首的偏移字节数。 if语句后面的只有第一句才是属于if语句的。除非给后面几个赋值语句加上大括号 函数定义时,出现在函数名后括号中的参数是形参 printf默认右对齐 printf和scanf是库函数,不是语句 函数包括函数头,大括号和函数体三部分,函数体是可执行部分,而赋值语句只能放到函数体里 printf输出的数据不仅受输出域宽和小数域宽限制,也受数据在内存中存储精度影响 在C语言中,ENUM小写是 阅读详情
  1. 每个函数定义结束之后以及每个文件结束之后都要加一个或若干个空行。

  2. 在一个函数体内,变量定义与函数语句之间要加空行。

  3. 逻揖上密切相关的语句之间不加空行,其它地方应加空行分隔。

4. 用缩行显示程序结构,使排版整齐,缩进量统一使用4个字符(不用TAB )。

  1. 在函数体的开始、结构/联合的定义、枚举的定义以及循环、判断等语句中的代码都要采用缩行。

  2. 同层次的代码在同层次的缩进层上。

  3. 代码行大长度宜控制在80 个字符以内,较长的语句、表达式等要分成多行书写。

  4. 长表达式要在低优先级操作符处划分新行,操作符放在新行之首(以便突出操作符)。拆出的新行要进行适当的缩进,使排版整齐,语句可读。

  5. 如果函数中的参数较长,则要进行适当的划分。

10.不要编写太复杂的复合表达式,不要有多用途的复合表达式,尽量避免含有否定运算的条件表达式。

11.原则上尽量少使用全局变量,全局变量生命周期太长,容易出错, 也会长时间占用空间.各个源文件负责本身文件的全局变量,同时提供一对对外函数,方 便其它函数使用该函数来访问变量

12.参数命名恰当顺序合理,目的参数放在前面,源参数放在后面。

13.如果参数是指针,且仅作输入参数用,则应在类型前加const,以防止该指针在函数体内被意外修改。

14.在函数体的“入口处”,对参数的有效性进行检查。尤其是指针参数,尽量使用assert宏做入口校验,而不使用if语句校验。

15.return语句不可返回指向“栈内存”的“指针”,因为该内存在函数体结束时被自动销毁。

16.相同的输入应当产生相同的输出。尽量避免函数带有“记忆”功能。 带有“记忆”功能的函数,其行为可能是不可预测的,因为它的行为可能取决于某种“记忆状态“。这样的函数既不易理解又不利于测试和维护。在C 语言中,函数的static 局部变量是函数的“记忆”存储器。建议尽量少用static 局部变量,除非必需。

Chapter 5 Gate Drivers and Level Shifters Gate driver如下图所示, 包括功率管(带保护), Gate driver, Level shifter, Gate Supply 和Dead-time control. 阅读详情

相关推荐

从0到1:.NET 9 OpenAPI全攻略!Swagger vs Scalar UI谁更强?

OpenAPI:.NET 9的智能文档革命 本文深入解析.NET 9的OpenAPI支持,对比Swagger UI与Scalar UI的优劣,提供实战代码示例: 一键生成:AddOpenApi()+MapOpenApi()快速生成标准文档 UI工具对决: Swagger UI功能全面但复杂 Scalar UI简约现代,原生支持cURL/HTTPie 进阶技巧: XML注释增强文档可读性 自定义Transformer实现文档动态修改 🔥核心价值:.NET 9的OpenAPI方案显著降低API文档维护成本,开

java专栏 1427

IF条件表达式尽量不要含有否定运算

含有否定运算的表达式难于理解。

uusad的专栏 1820

物理信息神经网络(PINNs)在交通运输领域的应用

物理信息神经网络(PINNs)在交通运输领域的应用研究结合了数据驱动与物理模型约束,通过嵌入交通流守恒定律等物理信息,显著提升了交通状态估计与预测的精度。该技术仅需少量观测数据(流量、速度、密度等),即可实现高精度建模,尤其适用于数据稀疏场景。研究重点包括:交通状态估计与预测、参数辨识、交通控制优化等领域,同时面临计算成本高、物理模型依赖性等挑战。未来需解决大规模异构数据处理问题,以进一步推动智能交通系统发展。

qq_49609070的博客 944

VS2017去掉函数或变量的安全警告

VS2017去掉函数或变量的安全警告 1.点击”项目”–>”xx属性”–>”C/C++”–>”预处理器”–>”预处理器定义” 2.在预处理定义的编辑窗口中添加一句命令:_CRT_SECURE_NO_WARNINGS 参考博文:https://blog.youkuaiyun.com/gaoszzzz/article/details/72540937...

Wangcong_cong的博客 6747

Multisim实战:从8选1到32选1数据选择器的完整搭建指南(附常见问题解决)

本文提供了一份详尽的Multisim实战指南,手把手教你从基础的8选1数据选择器开始,逐步级联搭建16选1乃至32选1数据选择器。文章深入剖析了级联的核心逻辑、片选方案以及使用译码器的专业方法,并附带了电源连接、输出冲突、信号毛刺等常见问题的诊断与解决技巧,帮助电子工程学生和爱好者扎实掌握数字电路的系统设计与仿真调试。

dd012的博客 730

嵌入式开发中Tab与空格混用的危害与统一规范实践

在软件工程中,代码格式一致性是保障可读性与团队协作效率的基础。从原理上看,制表符(Tab)与空格(Space)在存储与显示机制上存在本质差异:Tab是控制字符,其显示宽度取决于编辑器设置;空格则是固定宽度的字符。这种差异导致混用时会引发代码对齐错乱、版本控制冲突及跨平台兼容性问题,严重影响工程的可维护性。尤其在嵌入式开发领域,资源受限环境与高可靠性要求使得统一的编码规范更为关键。通过配置编辑器、集成clang-format等自动化工具,可以强制实现缩进风格的一致性,从而提升代码质量与团队协作效率。本文聚焦于

weixin_42545636的博客 276

《C语言深度刨析》整理--函数和文件

进行到这里,就比较轻松愉快了,最后的内容也较少较简单        规范的养成是一个长期的过程,关键是要有意识,开始的时候,代码写前写中写后,可以参照比较好的代码规范对比修正一下; 一、简要介绍几种较好的编码规范        1、每一个函数都必须有注释,即使函数短到可能只有几行        2、每个函数定义结束之后以及每个文件结束之后都要加一个或若干个空行        3、在一个函

xyk_code的专栏 510

Xilinx UltraScale+系列FPGA实现USB3.0 DEV 设备 部分原理图+代码分享

Zynq UltraScale+ MPSoC 系列是 Xilinx 新一代 Zynq 平台。在 FPGA 里有完整的 ARM 处理(PS),包含了四核或双核 Cortex-A53 处理器 ,处理器子系统中有DDR内存控制器等大量的外设,在FPGA中完全独立于可编程逻辑单元(PL)如果暂时没有用到PL部分,PS也能单独工作,相当于可以当成一个ARM来用了(以前的不行)。 ARM也包含USB3.0控制器,这是实现USB3.0DEV的关键,根据官方手册(ug1085)描述,USB主(Host)从(Device)

Pierre 1万+

C语言中容易忽略的问题

C语言中容易忽略的问题 1;关于在函数中调用数组时,若出现下面的函数语句    Int  func(long array[const static 5]) 其意思是: 数组是一个指向long的不能被修改的指针,该数组至少与5个元素 待续。。。。

xiaoqiang137549的专栏 579

TenserRt平台SMOKE 3D目标检测部署完整教程:从理论到实践

本教程详细介绍了在RK3588平台上部署SMOKE 3D目标检测模型的完整流程。SMOKE是一种创新的单阶段单目3D检测方法,通过关键点估计直接预测3D目标信息,有效解决了深度信息缺失等挑战。文章从理论基础出发,解析了SMOKE的核心算法和网络架构,包括DLA-34主干网络和关键点中心化策略。同时提供了详细的Docker环境配置、模型导出到ONNX格式的实践指南,以及TensorRT引擎构建和性能优化的关键技术要点。该教程为开发者在嵌入式平台上实现高效3D目标检测提供了完整的技术参考。

LXY_LOVE36的博客 371

MIKE21 MIKE软件 教程 0.1 软件介绍与教学目录

MIKE 21是一个专业的工程软件包,用于模拟河流、湖泊、河口、海湾、海岸及海洋的水流、波浪、泥沙及环境问题。在MIKE Zero集成平台中,主要有MIKE11,MIKE21,MIKE3三类软件,分别对应一维,二维,三维的水动力模型模拟。同时还包括MIKE HYDRO,MIKE FLOOD等其他功能,各软件的具体介绍请参考DHI公司的官方文档,在此不作赘述。学习过程中,对于任何操作界面的疑问,建议大家仔细阅读帮助文档(在有疑问的界面按F1调出),同时官方也提供了对应的线上和线下教学服务(免费+收费)。

Hello Word 2万+

新手友好!位操作符详解、操作符系统简易介绍

本文系统介绍了操作符相关知识,重点解析二进制相关操作符。首先将操作符按功能分类,并说明优先级和结合性两大执行原则。其次详细讲解原码、反码、补码的表示规则,指出整型数据在内存中以补码形式存储。然后深入分析位操作符(&、|、^、~)和移位操作符(<<、>>)的执行逻辑及特性,通过示例说明其运算机制。此外还介绍了条件操作符、逗号操作符的使用方法。最后阐述了整型提升和算术转换两个重要概念,区分其应用场景。全文旨在帮助读者全面理解操作符体系,特别是掌握二进制相关操作符的运作原理。

eluelu的博客 577

binning模式下和normal模式下相同曝光参数相同场景加权亮度差异消除方案优化(一)

摘要:针对ISP参数设置中浮点权重系数需转换为整数的问题,提出整数邻域搜索方案。该方法在浮点最优解附近(±1/±2)进行局部搜索,通过逐阶微调找到误差最小的整数权重组合,避免直接取整导致的误差反弹(误差从0.8%降至0.35%)。方案结合范围约束(1~15)和单调性约束(暗端递减、亮端递增),兼顾计算效率(单图耗时<10ms)与硬件兼容性,显著优于暴力搜索和简单取整,满足工程落地需求。

大熊 97

【C语言】C语言中的隐式规则

如果在代码块内部声明了和外层同名的变量,内部的变量会隐藏外部的,这可能导致意料之外的行为。另外,链接属性,比如未加static的函数默认是extern的,可以被其他文件访问,这也是隐式的规则。类型转换方面,比如整数和浮点数之间的运算,会自动将整数转换为浮点数,这也是隐式的。总的来说,这篇文章尽可能的涵盖了C语言中常见的隐式规则,解释它们的原理,可能带来的问题,以及如何避免。另外,我们要提到现代C标准(如C99、C11)中的变化,比如隐式函数声明在C99中不再允许,但有些编译器仍支持,导致可移植性问题。

猫猫的小茶馆 793

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

C语言中程序无法调试,c语言中常见错误与程序调试.docx

C语言中的常见错误与程序调试主要内容14.1常见错误分析14.2程序调试要真正学好C、用好C并不容易,“灵活“固然是好事,但也使人难以掌握,尤其是初学 者往往出了错还不知怎么回事。C编译程序对语法的检查不如英他髙级语言那样严格(这是 为了给程序人员留下“灵活”的余地)。因此,往往要由程序设讣者自己设法保证程序的正确 性。调试一个C程序要比调试一个PASCAL或FORTRAN程序更困难一些。需要不断...

weixin_32546235的博客 2813

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

C语言基础知识

一、前言部分 二、具体部分 1、基本数据类型 在C语言中,承载一系列信息的数字或中字符都属于数据类型,计算机不能直接识别不同的类型,所以在使用变量时需要在声明语句中指定其数据类型。C语言的数据类型,通俗的理解就是将不同的物品放在不同的盒子中,比如小数存放在浮点型、整数存放在整型、字符存放在字符型等等,在编写C语言时需要根据存放数据的不同,定义不同的类型变量。 c语言有3种基本数据类型: 整型,表示一个整数,通常包括“short”、“int”、“long”等。 实型,“实型

Yirennn的博客 6960

C语言编程常见错误与防范策略(大纲)

C语言编程错误多种多样,但通过遵循良好的编程习惯、使用现代工具和编写测试代码,我们可以有效降低错误发生的概率。只有深入了解C语言的特性和陷阱,才能编写出高效、稳定的程序。

Wx的博客 1203

C语言的易错点陌生点

此内容为本人大一第一学期学习C语言中遇到的难点总结,或者是容易忽略的点,并不是C语言的全面知识,而大部分是边角知识!

CK的博客 1281

printf和scanf那些令人容易忽视的细节

printf 和 scanf 是 C 语言标准库中的两个重要函数,但在使用中,有着许多需要注意的细节和容易让人忽略的重点,在这里和大家分享一下。printf( )和scanf( )都是在标准库的头文件stdio.h中定义的,所以在使用时,必须在源码文件中引入这个头文件才能使用。可以通过不同的占位符来输出各种类型的数据。可以使用格式控制字符串来指定输出的格式,如宽度、精度等。可以通过转义字符来输出特殊字符,如 \n 表示换行。

lxy370198409的博客 960

常被忽视的C语言操作符优先级

由操作符优先级左右的美观和高级声明 最开始,在学习C语言的时候,都是为了快速上手,很少有人真正关心C语言操作符的优先级; 除非你是科班出身,有老师监督并有考试来约束; 那为什么我们都会有这个忽略它的想法呢? 首先我们都感觉自己很聪明,这部分用的的时候查查就可以了 只要使用括号,没有解决不了的事情,如果有,那就再加一个括号… 为了快速投入到工作中,如果你不经常写代码,更不会关心它 可能的原因也许还有很多,但不论都是什么,反正操作符的优先级看起来并没有那么重要。 本文就要把你的观念正一正,看看学好操作符的优

Darlingrex的博客 874

c语言常见概念

每个源文件(.c)单独经过编译器处理生成对应的目标文件(.obj为后缀的文件),多个目标文件和库文件经过连接器处理生成对应的可执行文件(.exe文件)。C语言是一门编译型计算机语言,C语言源代码都是文本文件,文本文件本身无法执行,必须通过编译器翻译和连接器的链接,生成二进制的可执行文件,可执行文件才能执行。库函数也被称为标准库,是为了不在重复实现常见的代码,提升开发效率,C语言标准规定的一组函数。每个C语言程序都是从main函数开始执行的,main函数是程序的入口,main函数也被叫做。

loT_science的博客 478

c语言错误出在花括号上,初学者在学习c语言编程过程中常出现的错误分析

在高校经常中开设的第一科关于程序设计的语言就是C语言,这种语言有很多优势,比如说使用比较灵活,功能比较强大,可以用于编写程序、软件,但是对于初学者来说,1 0 8应用方法论22第霸 0赫 6乱 1期年初学者在学习c语言编程过程中常出现的错误分析冯义成(四川省南充市西华师范大学计算机学院,四川南充 6 7 0 30 0)摘要在高校经常中开设的第一科关于程序设计的语言就是c语言,这种语言有很多优势,...

weixin_30696755的博客 4799

C语言数组最容易忽视的细节

函数声明: 在函数声明中,参数的名称并不重要,只有参数的类型是必需的,因此下面也是有效的声明: int max(int, int); 函数调用: C语言调用函数之前一定要声明函数。 数组: void main() { int b[10] = { 1,2,3,4,5,6,7,8,9,10 }; printf("所给数组中的最大数为:%d\n", GetMax(&b[0], 10)); }...

Hackeryuan的博客 272

C语言相关

1、通过静态的定义char *p = "abc";系统会默认的给字符串"abc"后面加上'\0'。此时char *p = "abc";在内存中的存储形式为"abc\0"。      并且经过验证无论字符串是什么形式,哪怕是char *p = "def\0";编译器也会自动给"def\0"字符串后面加上字符'\0'。此时char *p="def\0";在内存中的存储形式为"def\0\0"。

macrohasdefined的专栏 1633

容易遗忘的C语言小知识

本文整理了C语言学习中易遗忘、易踩坑的核心基础知识点,涵盖ASCII码、转义字符、控制语句、运算符、变量存储、输入输出等关键模块,清晰拆解核心规则与实用用法,帮助开发者夯实基础、规避编码漏洞,提升代码严谨性与实操能力。

m0_68447088的博客 1047

c语言中的分支与循环——易忽略知识点整理

注:本文不介绍分支与循环的基本概念,而是从一些细小的,易忽略的知识点入手,旨在帮助读者加深对分支与循环的理解。

zephyr05的博客 335

C语言易忽略点总结

用加减法实现交换 且避免溢出a = a+b-(b=a) int a = 4(A)a += (a++); (B) a += (++a) ;(C) (a++) += a;(D) (++a) += (a++); 9 10 10 10 or 9  10 10 11GUN C编译器的 对C语言的九大扩展!!!在计算机内存中,统一使用Unicode编码,当需要保存到硬盘或者需要传输的时候,就转换为UTF-8编...

wenyaocn的博客 502
下一篇: 嵌入式 C 语言开发常见错误第一篇
smallknow
博客等级 码龄8年 2粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值