博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
[转]以下划线开头的变量名
阅读量:7249 次
发布时间:2019-06-29

本文共 1569 字,大约阅读时间需要 5 分钟。

 C++;

 

 统头文件里将宏名、变量名、内部函数名用 _ 头就是为了避免与用户用的名字冲突。因为当你i nclude 统头文件时,这些文件里的名字都有了定义,如果与你用的名字冲突,就可能引起各种奇怪现象。换句话说:我们写程序时一定不要用 _ 头的名字,以免与系统头文件的名字冲突,产生奇怪的问题(很难debug、弄清楚,当心)。

 

 Python

 

 核心风格:避免用下划线作为变量名的开始。

 

 为下划线对解释器有特殊的意义,而且是内建标识符所使用的符号,我们建议程序员避免用下划线作为变量名的开始。一般来讲,变量名_xxx被看作是私有的,在模块或类外不可以使用。当变量是私有的时候,用_xxx 来表示变量是很好的习惯。因为变量名__xxx__Python 说有特殊含义,对于普通的变量应当避免这种命名风格。

 

 "单下划线" 开始的成员变量叫做保护变量,意思是只有类对象和自类对象自己能访问到这些变量;而 "双下划线" 开始的是私有成员,意思是只有类对象自己能访问,连子类对象也不能访问到这个数据。

 

 单下划线开头(_foo)的代表不能直接访问的类属性,需通过类提供的接口进行访问,不能用“from xxx import *”导入;以双下划线开头的(__foo)代表类的私有成员;以双下划线开头和结尾的(__foo__)代表python里特殊方法专用的标识,如 __init__()代表类的构造函数。

 

 c++

 

 只是有些使用习惯|||符合命名标准,只是有些使用习惯,比如在我们自己写的类中,为了避免和成员函数名称重复,我们通常在类的成员变量前加上下划线。

 

 C/C code

 class InitParamSetting

 {

 public:

 InitParamSetting();

 ~InitParamSetting();

 public:

 void ReadRegInfo();

 void WriteRegInfo();

 

 CString _localRecPath;//本地录像存放路径

 int _maxLocalRecTime;//最大录像时间(以分钟为单位)

 CString _capPicPath;//图存放路径

 CString _vedioWndLabel;//视频窗口标签

 };|||I在我们自定义的类中,类的成员变量一般都加上前缀“_”这样可以避免数据成员与成员函数的参数同名。|||没法 

 VCTCHAR系列的C库函数都带_, 

 _t...|||这个是一般的命名规范,你可以采用也可以不采用 

 好像华为有这种规范,比如做ACE方面编程,你看ACE的源代码就是了。 

 如果内部使用的话定义函数为protected或者private就是了,没必要用_头。主要是看个人的编程习惯。|||库函数内部的东西, 

 

 还要不要去弄。 

 

 另:最好不要轻易声明首字母 _变量。|||就是说库函数内部实现用了这些函数,因为很多时候一个库函数功能的实现完全放在这一个函数里面可能不合适,或者某些库函数有共用的代码,怎么办的呢,就设计函数供库函数的实现调用。加下划线用意是避免命名重复。如果文档没有明确提及用法之类,最好不要用,以免实现改变了导致程序行为出现变化。 

 

 以前就有过微软的内部函数被破解,然后被人公布使用了,美其名曰技巧...后来微软想要改变函数,本来是自己内部用的,只要改操作系统代码就可以,结果发现后多程序运行不起来了,最后没办法只好保留这些函数,再去设计新的函数来实现想要的功能。所以最好不要依赖实现,不要依赖没有形成文档的东西 

 

 自己定义的名字最好不要在前面加下划线,以免不小心和人家的函数重名~

转载于:https://www.cnblogs.com/zhulin/archive/2011/12/27/2303398.html

你可能感兴趣的文章
Android开发百度地图(一)之初体验
查看>>
微服务指南走北(四):你不愿意做微服务架构的十个理由
查看>>
CSS代码重构与优化之路
查看>>
使用 sigprocmask 和 sigpending 在程序正文中捕获和处理信号
查看>>
Bodymovin插件的使用
查看>>
详细深入分析 Java ClassLoader 工作机制
查看>>
关于设计模式
查看>>
对一个“老”架构的重新思考
查看>>
DoubanFMPlayer, A mimic of Douban.fm player
查看>>
埃森哲、亚马逊和万事达卡抱团推出的区块链项目有何神通?
查看>>
2019年自动驾驶5大趋势预测:第一台Level 5 无人车问世
查看>>
后APP时代的破局之路 :阿里技术“三大容器五大方案”亮相,百川开放全面升级...
查看>>
工欲善其事-必先利其器之终端
查看>>
64位的Mac OS X也有Windows.Forms了
查看>>
立下“去O”Flag的AWS,悄悄修炼了哪些内功?
查看>>
Better Software East/DevOps East/Agile Dev East 2016大会上的教程介绍
查看>>
优酷在多模态内容理解上的研究及应用
查看>>
JavaScript学习笔记整理:对象篇
查看>>
GitHub的bug赏金计划升级:奖金提高到3万美元以上
查看>>
中国法院裁定:禁售部分型号苹果手机
查看>>