iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >C语言中作用域编码规范是什么
  • 562
分享到

C语言中作用域编码规范是什么

2023-06-08 08:06:45 562人浏览 八月长安
摘要

今天小编给大家分享一下C语言中作用域编码规范是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。规范本身应该是一个规定,但C

今天小编给大家分享一下C语言中作用域编码规范是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以上就是“C语言中作用域编码规范是什么”这篇文章的所有内容,感谢各位的阅读!相信大家阅读完这篇文章都有很大的收获,小编每天都会为大家更新不同的知识,如果还想学习更多的知识,请关注编程网其他教程频道。

--结束END--

本文标题: C语言中作用域编码规范是什么

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

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

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • C语言中作用域编码规范是什么
    今天小编给大家分享一下C语言中作用域编码规范是什么的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。规范本身应该是一个规定,但C...
    99+
    2023-06-08
  • C语言中作用域编码规范有哪些
    这期内容当中小编将会给大家带来有关C语言中作用域编码规范有哪些,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。规范本身应该是一个规定,但C/C++在编码上并没有这样的规定,凡符合C/C++语法的就是合格的代...
    99+
    2023-06-17
  • C语言的基本编写规范是什么
    C语言的基本编写规范是什么,相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的...
    99+
    2023-06-26
  • go语言的注释编码规范是什么
    注释编码规范:1、所有导出对象都需要注释说明其用途;非导出对象根据情况进行注释。2、如果对象可数且无明确指定数量的情况下,一律使用单数形式和一般进行时描述;否则使用复数形式。3、包、函数、方法和类型的注释说明都是一个完整的句子。4、句子类型...
    99+
    2023-05-14
    Go go语言 Golang 注释
  • HTML中head头部区域的编码书写规范是什么
    这篇文章主要讲解了“HTML中head头部区域的编码书写规范是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“HTML中head头部区域的编码书写规范是什么”吧!head区一般必须加入的标...
    99+
    2023-06-27
  • java代码规范的作用是什么
    java代码规范的作用是什么,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。代码规范有什么意义1.一个软件的生命周期中,80%的花费在于维护,代码规范降低了金钱成本和时间成本...
    99+
    2023-06-02
  • Java语言编码规范中如何实现布局
    小编给大家分享一下Java语言编码规范中如何实现布局,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!Java语言编码规范3 布局(Placement)只在代码块的开...
    99+
    2023-06-03
  • Go语言开发编程规范命令风格代码格式是什么
    本文小编为大家详细介绍“Go语言开发编程规范命令风格代码格式是什么”,内容详细,步骤清晰,细节处理妥当,希望这篇“Go语言开发编程规范命令风格代码格式是什么”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。命名风格&...
    99+
    2023-07-02
  • Go语言中接口的命名规范是什么?
    go语言中接口命名规范:使用大写字母开头,使用“i”前缀表示接口,提供描述性名称,例如ireader用于表示读取器接口。 Go 语言中接口的命名规范 Go 语言中接口的命名遵循以下规则...
    99+
    2024-04-02
  • 实践中的Go语言注释编码规范建议
    实践中的Go语言注释编码规范建议 在编写Go语言程序时,良好的注释编码规范是非常重要的。适当的注释可以帮助其他开发者更快速地理解代码逻辑,提高代码的可读性和可维护性。本文将介绍一些在实...
    99+
    2024-04-02
  • c语言是什么编程语言
    c语言作为一种通用、结构化的编程语言,自诞生以来广泛应用于计算机领域。其基本特性包括结构化编程、过程式编程、底层访问能力、高效性能和跨平台性。在编程语言中,c语言是系统级编程的基石,也是...
    99+
    2024-03-14
    c语言 网络编程 作用域
  • c语言中auto的作用是什么
    在C语言中,auto是一种存储类说明符,用于声明自动变量。auto关键字可以用来显式声明变量,默认情况下所有局部变量都是自动变量,所...
    99+
    2023-10-28
    c语言
  • C语言中的命名规则是什么
    本篇内容主要讲解“C语言中的命名规则是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“C语言中的命名规则是什么”吧!一、常见命名规则  比较著名的命名规则,首推匈牙利命名法。这种命名方法,是由...
    99+
    2023-06-17
  • C 语言中 static 的作用是什么
    这篇文章给大家介绍C 语言中 static 的作用是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。static 用来说明静态变量。如果是在函数外面定义的,那么其效果和全局变量类似,但是,static定义的变量只能在...
    99+
    2023-06-03
  • c语言中class的作用是什么
    在C语言中并不存在类(class)的概念,因为C语言是一种过程化的编程语言,没有面向对象的特性。相反,在C++等支持面向对象编程的语...
    99+
    2024-03-12
    c语言
  • c语言中while语句的用法及规则是什么
    在C语言中,while语句用于创建一个循环,只要指定的条件为真,就会重复执行特定的代码块。while语句的一般格式如下:```whi...
    99+
    2023-09-15
    c语言
  • C语言作用域和数组有什么作用
    今天小编给大家分享一下C语言作用域和数组有什么作用的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。作用域  任何一种编程中,作...
    99+
    2023-06-17
  • Go语言中变量的作用域是什么
    这篇文章给大家介绍Go语言中变量的作用域是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。作用域为已声明标识符所表示的常量、类型、变量、函数或包在源代码中的作用范围。Go 语言中变量可以在三个地方声明:函数内定义的变...
    99+
    2023-06-08
  • linux中Shell脚本编程规范是什么
    这篇文章主要介绍了linux中Shell脚本编程规范是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。代码风格规范开头有“蛇棒”所谓shebang其实就是在很多脚本的第一行...
    99+
    2023-06-15
  • 汇编语言中assume的作用是什么
    本篇文章给大家分享的是有关汇编语言中assume的作用是什么,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟着小编一起来看看吧。assume 的作用是关联段名与段寄存器。如果你在数据段中定义了变量名...
    99+
    2023-06-25
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作