【C语言】C编程的基本素养(编程范式)

ADS RFpro 射频阻抗仿真步骤 导入器件后,在库里面选取器件的对应模型,如图所示我们选取10pf 系统自带的村田模型。选取网络上的器件,拖入到下面component Models。导入成功后,截取需要仿真的区域(不截取仿真时间会非常长),可以生成对应如下原理图,通过原理图继续调整仿真。图上找到需要仿真链路上的网络,右键设置为信号。的叠层信息,按照PCB板厂提供信息填写完整。选择仿真的频率范围和频点数,生成如下图的RFPro仿真界。,然后再把GND也添加到下面。按图设置截取需要仿真的部分。添加成功后 网络就有了,15 双击run开始仿真。 阅读详情

本文是介绍在C语言编程中,对变量和函数的命名一般原则和建议,以及排版的一些例子。(PS:我不知道这种叫不叫“编程范式”,我只是希望每个开发者都严格要求自己写出风格较为统一的代码,方便他人阅读。)


Table of Contents

三种命名方法

命名原则

我的代码排版


三种命名方法

 

骆驼命名法:

 

  1. 小驼峰法(camel方法):变量一般用小驼峰法标识。
    • 格式:第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母;
    • 例子:myFirstName、myLastName
  2. 大驼峰法(Upper Camel Case):又称帕斯卡命名法(pascal方法),常用于类名,函数名,属性,命名空间。
    • 格式:相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。
    • 例子:MyFirstName,如Java就是采用骆驼命名法。

 

下划线命名法:

 

  • 格式:词与此之间用一个下划线分割开来;
  • 特点:下划线命名法中,函数名中的每一个逻辑断点都有一个下划线来标记。骆驼命名法中,函数名中的每一个逻辑断点都有一个大写字母来标记。
  • 例子:my_first_name,my_last_name,在Python中建议使用这种方式

 

匈牙利命名法:

 

  1. 格式:前缀 + 真正的变量名
  2. 解释:前缀(一个或者多个小写字母开头作为前缀),前缀表明该变量的类型;真正的变量名(前缀之后的是首字母大写的一个单词或多个单词组合)
  3. 例子:aStudentArray,该变量前面的“a”表示这个变量是一个数组变量,“StudentArray”表示这个变量的意义
  4. 如Windows平台的系统API就是采用匈牙利命名法。

 

有一个开源项目,可以帮助你命名:

CODELF(https://unbug.github.io/codelf/)


命名原则

 

Force Syntax:

1. 只能以字母或下划线开始;

2. 不能以数字开始;

3. 关键字、保留字不允许用(如float,double);

 

变量、函数命名的一般原则:

  1. C 是一种简洁的语言, 命名也应该是简洁的。
  2. 命名应当直观且可以拼读,可望文知意,便于记忆和阅读。
  3. 标识符最好采用英文单词或其组合,不允许使用拼音。
  4. 程序中的英文单词一般不要太复杂,用词应当准确。例如变量名MaxVal 就比MaxValueUntilOverflow 好用。标识符的长度一般不要过长,较长的单词可通过去掉“元音”形成缩写。
  5. 命名的长度应当符合“min-length && max-information”原则。另外,英文词尽量不缩写,特别是非常用专业名词,如果有缩写,在同一系统中对同一单词必须使用相同的表示法,并且注明其意思。
  6. 当标识符由多个词组成时,每个词的第一个字母大写,其余全部小写。比如:int CurrentVal;一个词时就小写;这样的名字看起来比较清晰,远比一长串字符好得多。
  7. 也即,C语言推荐使用大驼峰法命名法!
  8. 所有宏定义、枚举常数、只读变量全用大写字母命名,用下划线分割单词。

 

注意事项:

  1. 尽量避免名字中出现数字编号,如Value1,Value2 等,除非逻辑上的确需要编号。比如驱动开发时为管脚命名,非编号名字反而不好。
  2. 初学者总是喜欢用带编号的变量名或函数名,这样子看上去很简单方便,但其实是一颗颗定时炸弹,也即这种命名方法是错误的。这个习惯初学者一定要改过来。
  3. 程序中不得出现仅靠大小写区分的相似的标识符。这里还有一个要特别注意的就是1(数字1)和l(小写字母l)之间,0(数字0)和o(小写字母o)之间的区别。这两对真是很难区分的,我曾经的一个同事就被这个问题折腾了一次。

 

如何给变量命名:

  1. 变量的命名使用名词性词组。
  2. 变量含义标识符构成:目标词+ 动词(的过去分词)+ [状语] + [目的地];

 

如何给函数命名:

  1. 函数的命名使用动词性词组。
  2. 函数含义标识符构成:动词(一般现时)+目标词+[状语]+[目的地];

我的代码排版

 


 

SAP公司间外协业务流程以及配置说明 阅读详情

相关推荐

解密微信DAT图片:一键转换JPG/PNG/GIF的实用指南

本文详细解析微信DAT图片的加密机制及转换方法,提供从定位文件到使用WeijieSoft工具一键转换JPG/PNG/GIF的完整指南。涵盖新旧版微信存储路径差异、批量处理技巧及常见问题解决方案,帮助用户高效恢复重要图片并释放存储空间。

weixin_29305337的博客 3616

OpenHarmony 鸿蒙OS C编程规范

源地址 英文版 文章目录C语言编程规范目的总体原则约定例外1 命名总体风格规则1.1 标识符命名使用驼峰风格建议1.1 作用域越大,命名应越精确文件命名建议1.2 文件命名统一采用小写字符函数命名建议1.3 函数的命名遵循阅读习惯变量命名规则1.2 全局变量应增加 'g_' 前缀,函数内静态变量命名不需要加特殊前缀建议1.4 局部变量应该简短,且能够表达相关含义类型命名宏、常量、枚举命名建议1.5 避免函数式宏中的临时变量命名污染外部作用域2 排版格式行宽建议2.1 行宽不超过 120 个字符缩进规则2.

WSG的博客--盛年不重来,一日难再晨.及时当勉励,岁月不待人. 5440

Openclaw Onboarding向导全攻略——如何配置你的第一个AI助手

很多新手在成功运行 `openclaw --version` 后,面对黑底白字的终端就陷入了迷茫:“安装好了,然后呢?” 本篇我们就彻底解决这个问题,带你完整走完 `openclaw onboard` 交互式初始化配置向导的每一步,从“安装完成”到“真正能用”,只差这一个向导的距离。 本文为2026年3月最新版,适配OpenClaw v2026.2.x 稳定版,所有步骤均经过实测验证,可直接落地。

夏日清风 1917

中职c语言课程,核心素养框架下的中职C语言课程教学设计研究

康梦园 刘万松 代政文摘要:在新课改的背景下,培养学生的核心素养是学校实现科学育人的基本目标。c语言不仅是一门基础课程,更是一门专业技术课程,中职学生学好C语言对后续课程的学习以及毕业后从事计算机相关工作具有重要意义。关键词:核心素养 c语言 信息技术 教学设计课题:本文系贵州师范大学2018年省级教学内容和课程体系改革项目(合同编号[2018]SJG第01号)、贵州师范大学创新创业教育研究基...

weixin_31026805的博客 945

一文带你完成ARMv8架构中的cache知识点

【摘要】 在最初开发ARM架构时,处理器的时钟速度和内存的访问速度大致相同。今天的处理器内核要复杂得多,其时钟速度可以快上几个数量级。但是,外部总线和内存设备的频率并没有扩大到同样的程度。有可能实现小块的片上SRAM,它可以以与内核相同的速度运行,但是与标准的DRAM块相比,这种RAM非常昂贵,因为后者的容量可以达到数千倍。在许多基于ARM处理器的系统中,访问外部存储器需要几十甚至几百个内核周期。 cache的技术背景 在最初开发ARM架构时,处理器的时钟速度和内存的访问速度大致相同。今天的处.

ABCCloud的博客 1853

Mathtype公式排版避坑指南:固定行距20磅下如何完美显示上下标(实测有效)

本文针对学术论文在固定行距20磅要求下,Mathtype公式上下标显示不全或被裁剪的问题,提供了实测有效的解决方案。文章深入剖析了固定行距与公式排版的冲突原理,并详细指导用户通过调整Mathtype的“定义间距”参数(如下标深度、上标高度),以及利用“格式化公式”功能进行批量处理,确保公式在严格遵守期刊格式要求的同时清晰完整显示。

weixin_29228203的博客 1069

编程范式整理

编程语言 与成百种编程语言(Programming Language)相比,编程范式(Programming Paradigm、范式)要少得多。 如图所示,共有27种范式。多数范式之间仅相差一个或几个概念。 主要的范式 最常用的范式有三个:过程试编程,面向对象编程(OOP),函数式编程(FP)。然后我们介绍一下新兴的第四种范式也就是面向切面编程(AOP)。 过程试编程 过程式编程(Pro...

白拾的博客 4031

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别总结

常见消息队列:ActiveMQ、RabbitMQ、RocketMQ、Kafka的区别。

qq_30713721的博客 3471

C语言.命名规范

一、骆驼命名法: 1)小驼峰法(camel方法)变量一般用小驼峰法标识。 第一个单词以小写字母开始;第二个单词的首字母大写或每一个单词的首字母都采用大写字母,例如:myFirstName、myLastName 2)大驼峰法(Upper Camel Case)也称为:帕斯卡命名法:(pascal方法)常用于类名,函数名,属性,命名空间。 相比小驼峰法,大驼峰法把第一个单词的首字母也大写了。例如:...

qq_38916259的博客 4365

Windows系统下com0com虚拟串口安装与驱动签名禁用全攻略

本文详细介绍了在Windows系统下安装com0com虚拟串口工具的全过程,包括驱动签名问题的解决方法。通过禁用驱动程序强制签名,用户可以顺利安装并使用这款开源工具创建虚拟串口对,适用于软件开发测试、硬件调试等场景。文章还提供了验证虚拟串口功能的实用技巧和常见问题解决方案。

weixin_28720573的博客 386

8、鼠疫流行过程的计算机建模介绍

本博文介绍了一种基于概率细胞自动机和蒙特卡罗方法的计算机模型,用于模拟由大沙鼠传播的鼠疫流行过程。结合GIS和遥感技术,该模型能够分析鼠疫在不同聚居地类型和季节变化下的传播特征,揭示了群落密度、分布及流行接触率对鼠疫传播的影响。研究还验证了模型与自然流行过程的一致性,并探讨了鼠疫在宿主数量低谷时的持续机制。模型为鼠疫防控和流行病研究提供了定量分析工具。

x2y3z4a5b的博客 105

一些函数、变量命名法及代码规范

驼峰命名法 骆驼式命名法(Camel-Case)又称驼峰式命名法,也称小驼峰式命名法。骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起时,第一个单词以小写字母开始;从第二个单...

嵌入式Linux 2965

LeRobot 入门教程(十六)Isaac Lab LeIsaac 叠衣服、夹橙子仿真环境

LeRobotEnvHub现已支持通过LeIsaac进行机器人模仿学习,提供摘橙子、搬立方体等日常任务仿真环境。用户可通过HuggingFace共享环境,使用一行代码加载任务,支持随机动作测试和远程操控。系统提供云端仿真方案,无需本地GPU即可运行。当前支持4种任务环境,通过make_env函数切换,其中折叠布料任务需先调用initialize()函数。该平台集成了数据采集、转换和训练全流程,为机器人学习提供便捷工具链。

2506_90492529的博客 1483

C语言与Python:探索两者之间的不同

C语言是静态类型语言,其类型系统在编译期间就确定了变量的类型,并在整个程序的执行过程中保持不变。从这个角度出发,静态类型也增加了编程的复杂性和出错的可能性,因为程序员需要显式地声明变量的类型,并在使用时进行类型转换。事实上,C语言和Python在语法结构、内存管理、类型系统、编程范式以及应用领域等方面存在着显著的不同。而Python则因其简洁的语法、丰富的库支持和强大的数据处理能力,在数据分析、人工智能、Web开发等领域有着广泛的应用。从这个角度出发,这种复杂性也增加了编程的难度和出错的可能性。

m0_60591287的博客 743

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

C语言与Python:语言层面的深入对比

C语言的代码往往需要更多的细节和明确的指示,例如使用分号结束语句,使用大括号定义代码块等。C语言是一种静态类型语言,它要求程序员在声明变量时明确指定变量的类型,并在整个程序的执行过程中保持该类型不变。从长远来看,静态类型也增加了编程的复杂性和出错的可能性,因为程序员需要显式地管理类型之间的转换和匹配。Python的面向对象特性使得代码更加模块化和可重用,而函数式编程则提供了更加简洁和高效的编程方式。按理说应该是如此,C语言和Python在语法结构、类型系统、内存管理以及编程范式等方面存在显著的区别。

a1237567892的博客 442

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Java、C语言、Python、PHP、C#、C++主流编程语言的特性与选择指南

在软件开发领域,选择合适的编程语言对项目的成功至关重要。每种语言都有其独特的设计哲学、生态系统和最佳应用场景。本文将深入探讨Java、C、Python、PHP、C#和C++这六种主流编程语言的核心特性,并为您在不同情境下的选择提供实用指南,帮助您根据项目需求、团队技能和长期目标做出明智决策。

hhm_ceo的博客 785

c语言i8是什么变量,C语言是所有编程语言的“爹”吗?不!他不是但是胜似!...

仅仅看一下计算机语言的家谱就应该阐明C的位置。C是一种非常成功的计算机语言,它的后代(C ++,Java,Objective C,以及许多动态语言,例如Perl,Python或JavaScript)都非常活跃。但是C绝不是第一种编程语言,甚至也不是唯一的编译语言(还编译了Fortran,Pascal,Lisp或Basic)。C从一开始就被认为是一种可移植的汇编语言,因此它具有一个有趣的生态位,这意...

weixin_39637151的博客 329

为什么学习C语言?它的历史与重要性

回到最初的问题:“为什么学习C语言?答案不是因为它“流行”,而是因为它“根本”。C语言如同建筑中的钢筋混凝土——你看不到它,但整个大厦都建立在其之上。学习C语言,不是为了写更多的C代码,而是为了理解软件世界的底层逻辑。在这个AI编码助手泛滥的时代,很多人以为“会调API就够了”。只有理解底层,才能驾驭上层。C语言,正是通往这一境界的钥匙。正如Dennis Ritchie所言:“C语言的成功,在于它站在了足够低的位置,让程序员能够触及机器的灵魂,又站在了足够高的位置,让他们不必陷入汇编的泥潭。

always_TT的博客 2万+

LLM时代编程范式变革与实战方法论

大语言模型(LLM)正在重塑软件开发范式,推动编程从语法记忆转向问题定义能力。AI辅助编程的核心原理是通过自然语言交互实现人机协同,其技术价值在于将开发者从重复劳动中解放,提升40%以上的开发效率。在实际工程实践中,LLM特别适用于样板代码生成、异常处理实现等场景,但需要配合严格的质量审计机制。现代开发者需掌握提示词工程、任务拆解等AI协作能力,同时保持对系统设计、代码安全等工程实践的把控。本文通过学生成绩管理系统等案例,详解LLM辅助编程的方法论与最佳实践。

weixin_34315485的博客 411

编程素养

JavaScript 简答题列举 Java 和 JavaScript 之间的区别?> Java 是一门十分完整、成熟的编程语言。相比之下,JavaScript 是一个可以被引入 HTML 页面的编程语言。这两种语言并不完全相互依赖,而是针对不同的意图而设计的。 Java 是一种面向对象编程或结构化编程语言,类似的如 C ++ 或 C,而 JavaScript 是客户端脚本语言,它被称为非结构化编程。

lock_j的博客 257

五种编程语言,五种人生,你想成为哪一种程序员?

(,・∀・)ノ゛hello,我是没烦恼的羊羊,大家都知道编程语言是程序员的工具和武器,不同的编程语言有不同的特点和优劣,适用于不同的场景和目标。学习编程语言是一种投资,它可以影响你的职业发展、收入水平、创造力和乐趣。那么,作为一个程序员,你应该呢?这里,小狮妹为你介绍五种常见的编程语言,以及它们代表的。你可以根据自己的兴趣和需求,选择适合自己的编程语言,或者多学几种,丰富自己的技能和视野。如果你想成为一名底层大师,那么你必须学习C/C++。C/C++是最接近。

2402_84205067的博客 1443

Java与C语言对比:面向对象编程入门指南

面向对象编程(OOP)是现代软件开发的核心范式,Java作为其典型代表,与面向过程的C语言形成鲜明对比。理解JVM虚拟机原理是掌握Java跨平台特性的关键,它通过字节码转换实现'一次编写,到处运行'。在工程实践中,Java的自动垃圾回收机制(GC)大幅降低了内存管理复杂度,而丰富的类库支持则提升了开发效率。从基础语法到实际应用,Java的强类型系统和面向对象设计使其特别适合构建企业级应用。本文通过HelloWorld示例和成绩管理系统案例,帮助开发者完成从C到Java的思维转换,重点解析两种语言在变量定义、

weixin_29292431的博客 112

一个CS出身的基本素养

从前天10号提交Paper之后,连三个晚上之后突然正常起来竟然变成倒时差状态。 这周打算给自己一个空窗期,好好想想下两到三个月要做的事。 好吧,除了“一日一算法”,当下两个月还有一个迫切任务:重塑 CS 素养。 到明年2015年10月份的时候,自豪地说,我是CS出身的人。 首先是“书单”,第二是“笔记计划”,第三是“Project计划”。 // c version : hello w...

weixin_33735077的博客 167

编程需要多少数学?

你不需要数学就可以成为一流的程序员,因为我们不直接使用很多数学。

u013643074的博客 397

编程素养-Day018

JavaScript 简答题 列举 Java 和 JavaScript 之间的区别? Java 是一门十分完整、成熟的编程语言。相比之下,JavaScript 是一个可以被引入 HTML 页面的编程语言。这两种语言并不完全相互依赖,而是针对不同的意图而设计的。 Java 是一种面向对象编程或结构化编程语言,类似的如 C ++ 或 C,而 JavaScript 是客户端脚本语言,它被称为非结构化编程...

吴佳伟的博客 218

编程素养018

JavaScript 简答题 列举 Java 和 JavaScript 之间的区别? Java 是一门十分完整、成熟的编程语言。相比之下,JavaScript 是一个可以被引入 HTML 页面的编程语言。这两种语言并不完全相互依赖,而是针对不同的意图而设计的。 Java 是一种面向对象编程或结构化编程语言,类似的如 C ++ 或 C,而 JavaScript 是客户端脚本语言,它被称为非结构化编程...

旧器去重 212

编程素养Day018

JavaScript 简答题 列举 Java 和 JavaScript 之间的区别? java是一门完整的成熟的编程语言。相比之下,javaScript是一个可以被引入HTML的编程语 言。这两种语言并不完全相互依赖,而是针对不同的意图而设计的。java是一种面向对象的 编程或结构化编程语言,类似的如C++或C,而javaScript是客户端脚本语言,它被称为非结 构化编程。 MySQL 简答题...

weixin_42707543的博客 145
上一篇: 关于算法,我们都应知道的
下一篇: 【Java编程范式 】命名与排版
ALGO阿狗
博客等级 码龄9年 64粉丝 149原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值