返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言中作用域编码规范有哪些
  • 819
分享到

C语言中作用域编码规范有哪些

2023-06-17 12:06:18 819人浏览 薄情痞子
摘要

这期内容当中小编将会给大家带来有关C语言中作用域编码规范有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。规范本身应该是一个规定,但C/C++在编码上并没有这样的规定,凡符合C/c++语法的就是合格的代

这期内容当中小编将会给大家带来有关C语言中作用域编码规范有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

规范本身应该是一个规定,但C/C++在编码上并没有这样的规定,凡符合C/c++语法的就是合格的代码,但符合C/C++语法的代码不一定是优秀的代码,要对一些不良行为做约定,比如不应该将局部使用的变量作为全局变量,这是其一;其二,代码本身也可能会进行合作开发或后期维护,那么一个表达统一结构清晰的代码是必要的。由这两点产生了编码规范,所以编码规范就是公司或团体对代码编写的一个规定和约定。

对于第二点而言,虽然其存在的价值是必须的,但是适用场合都有所不同性,且众口难调,缺乏非此不可的科学依据。比如大家熟悉的匈牙利命名法,其在变量名称中包含了类型信息,其优点不言而喻,在代码实现过程中非常方便,但缺点也有不少,比如 变量本身就具有类型,而名称中再次包含了类型信息,这是严重的冗余,修改变量类型就必须修改变量名称,更主要的是没有办法保证它们的一致性,总之 名称应该是对功能的描述,而不应该含有类型信息。

所以即使强如匈牙利命名法,在M$的编码规范中也不将再存在。因为第二点不能放之四海而皆准,所以我将在这篇短文中讲述***点,有科学依据则易于为人接受,但我还是要强调一下,这***点只是编码规范存在理由的一部分,而不是全部,第二个理由也非常重要,其引申出来的规范不可缺少。

要想写出优秀的C/C++代码有很多注意点,不是一个小短文可以描述清楚的,我这里仅仅讲述变量的作用域和生存期,根据这些规则产生的编码规范会和你曾经见到过的一些编码规范有所抵触,这不足为奇,比如很多编码规范规定了函数体的***行数,过多的行数大部分情况下是因为功能结构化分不清,不利于阅读,但却不一定如此,如果在这个规定和规定这个规定的目的之间产生了抵触,那么这时就应该舍弃这个规定,所以我认为称它编码建议胜于称它编码规范。

对于编码规范含义的讲解至此结束,话入正题,对于一个面向过程的语言而言,函数过程是其基本单位,函数是一个功能完整的实现过程,面向对象也如此,只是类代替了函数过程的部分地位。

为什么要将一个过程独立成一个函数?这是因为此过程功能完整明确,在独立成一个函数之后其还具备了复用的能力。

为什么不将一个过程独立成一个函数?这是因为此过程与其他部分耦合度太高,没有明确的功能含义,即使独立出来,也不存在可复用的场合。

作用域就是起作用的范围,一个应该在多处起作用的对象,不应该局限于一个小空间中,反之亦然。这里可以使用的有 函数、对象、名字空间 等,假如以上皆不符合,那么就应该使用为部分人所忽视的“{}”。

以下就是一个对变量/过程的作用域和生存期的演示:

很多地方都可能会用到的函数或类型()  {  };  一个功能函数或类型()  {   仅在此函数或类型中用到且多次用到的子函数或子类型() // C++没有子函数这一说法,可以使用函数对象(仿函数)替代  {  };  在接下来的部分也需要用到的变量; // 注意这个分号  {   仅在这个{}中用到的临时变量;   仅在此函数或类型中用到且只用到一次的功能段  }    函数或类型其他部分;  };

这样就将变量和过程局限在它们应有的空间中,避免了变量和过程对以后的变量和过程的污染,尤其在代码量很大的程序中,而且因为有了{}区分不同的功能代码,使得程序可读性增强。当然一切还是了可读性,看以下这个情况:

某个功能代码的***行;  某个功能代码的第二行;  某个功能代码的第三行;  {   只为此功能实现一次的,由与此功能无逻辑关系的代码***行;   第二行;   …… ;   第 n行;  }  某个功能代码的第四行;  某个功能代码的第五行;  某个功能代码的第六行;  这样实现也许逻辑清晰,但在代码编辑器中需要非常麻烦的上下翻页才能看到连续的功能代码,而且{}中的代码太长,像个丑陋的补丁,这时候将{}中的代码移到一个独立子函数中比较适合,就变成了  某个功能代码的第三行;  {   call子函数( 参数s ); // 上下的{}可以不要  }  某个功能代码的第四行;

当然前面也提到过如果这个子函数和这个功能代码段的耦合性太强的话,就需要传递很多的参数,这没有什么好的方法,因为这毕竟是为了可读性而作出的妥协。

局部类(比如定义在函数内部的类)有一些令人不快的功能限制,比如没办法作为模板参数,我还不知道在c++中为什么有这样的限制,但这一点确实确实令人不快。

上述就是小编为大家分享的C语言中作用域编码规范有哪些了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注编程网其他教程频道。

--结束END--

本文标题: C语言中作用域编码规范有哪些

本文链接: https://lsjlt.com/news/289002.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • C语言中作用域编码规范有哪些
    这期内容当中小编将会给大家带来有关C语言中作用域编码规范有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。规范本身应该是一个规定,但C/C++在编码上并没有这样的规定,凡符合C/C++语法的就是合格的代...
    99+
    2023-06-17
  • C语言中作用域编码规范是什么
    今天小编给大家分享一下C语言中作用域编码规范是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。规范本身应该是一个规定,但C...
    99+
    2023-06-08
  • C#语言规范有哪些
    这篇文章主要讲解了“C#语言规范有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C#语言规范有哪些”吧!C#语言规范——注释规范a)文件头部注释【规则1-1】文件都包含文件头,要说明文件...
    99+
    2023-06-17
  • C#中有哪些.NetFramework编码规范
    本篇文章给大家分享的是有关C#中有哪些.NetFramework编码规范,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。.Net Framework中的委托与事件尽管很多范例都能...
    99+
    2023-06-17
  • JavaScript编程语言的编码规范有哪些
    小编给大家分享一下JavaScript编程语言的编码规范有哪些,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!JavaScript 编码规范建议本文就 JavaSc...
    99+
    2023-06-27
  • go语言的注释编码规范有哪些
    这篇文章主要介绍“go语言的注释编码规范有哪些”,在日常操作中,相信很多人在go语言的注释编码规范有哪些问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”go语言的注释编码规范有哪些”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-04
  • C#语言命名规范有哪些
    C#语言命名规范有哪些,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。a)类【规则1-1】使用Pascal规则命名类名,即首字母要大写。【规则1-2】使用能够反映类功能的名词或名...
    99+
    2023-06-17
  • Bootstrap CSS语法编码规范有哪些
    这篇文章主要讲解了“Bootstrap CSS语法编码规范有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Bootstrap CSS语法编码规范有哪些”...
    99+
    2024-04-02
  • Python编码规范有哪些
    Python编码规范有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。编码在Python编码规范中,所有的 Python 脚本文件都应在文件头标上 # -*- codin...
    99+
    2023-06-17
  • VB.NET编码规范有哪些
    今天就跟大家聊聊有关VB.NET编码规范有哪些,可能很多人都不太了解,为了让大家更加了解,小编给大家总结了以下内容,希望大家根据这篇文章可以有所收获。一、类型级单位的命名 类。 以Class声明的类,都必须以名词或名词短语命名,体现类的作用...
    99+
    2023-06-17
  • VB.NET有哪些编码规范
    本篇文章为大家展示了VB.NET有哪些编码规范,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。一、类型级单位的命名类。以Class声明的类,都必须以名词或名词短语命名,体现类的作用。如:Class I...
    99+
    2023-06-17
  • Go编码规范有哪些
    本文小编为大家详细介绍“Go编码规范有哪些”,内容详细,步骤清晰,细节处理妥当,希望这篇“Go编码规范有哪些”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。1. 代码风格1.1 代码格式代码必须用 gofmt 进行...
    99+
    2023-07-04
  • Python中的编码规范有哪些
    这篇“Python中的编码规范有哪些”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“Python中的编码规范有哪些”文章吧。编...
    99+
    2023-07-06
  • C#代码规范有哪些
    C#代码规范有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。1. 引言按照此规范来开发C#程序可带来以下益处:· 代码的编写...
    99+
    2023-06-17
  • c语言文件命名规范有哪些
    C语言文件命名规范有以下几种常见方式:1. 小写字母命名法:文件名全部使用小写字母,单词之间用下划线 "_" 分隔。例如:my_fi...
    99+
    2023-08-16
    c语言
  • JavaScript的编码规范有哪些
    本篇文章给大家分享的是有关JavaScript的编码规范有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。JavaScript 文件引用Ja...
    99+
    2024-04-02
  • .Net Framework编码规范有哪些
    .Net Framework编码规范有哪些,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。.Net Framework编码规范:·委托类型的名称都应该以EventHandle...
    99+
    2023-06-17
  • Kitty-Cloud编码规范有哪些
    本篇文章给大家分享的是有关Kitty-Cloud编码规范有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。API 层autoconfigure:自动配置包名,类名以 Auto...
    99+
    2023-06-03
  • C语言标识符命名规范有哪些
    本篇文章为大家展示了C语言标识符命名规范有哪些,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。 标识符标识符是编程时使用的名字,用于给变量、常量、函数、语句块等命名,以建立起名称与使用之间的...
    99+
    2023-06-15
  • XHTML编码基本规范有哪些
    这篇文章主要介绍了XHTML编码基本规范有哪些,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。一、所有的标记都必须要有一个相应的结束标记 &n...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作