[转]以下划线开头的变量名

2023-05-16

 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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

[转]以下划线开头的变量名 的相关文章

  • 单点登录-CAS登录流程

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 第1 2两个章节摘抄自http www cnblogs com lihuidu p 6495247 html xff0c 第3部分来源于CAS官网 1 从项目部署结构说起
  • Hadoop集群(第5期)_Hadoop安装配置

    1 集群部署介绍 1 1 Hadoop简介 Hadoop是Apache软件基金会旗下的一个开源分布式计算平台 以Hadoop分布式文件系统 xff08 HDFS xff0c Hadoop Distributed Filesystem xff
  • 服务器系统没有界面,云服务器没有图形界面

    云服务器没有图形界面 内容精选 换一换 使用鲲鹏弹性云服务器 没有图形界面 操作某些文件的时候 你一定需要一个好用的编辑器 那么神器vim就得必须说说啦 超级好用先看图 vim有很多快捷操作 但是对于新人来说 仅仅用于日常修改文件部分信息
  • ERROR 1129 (HY000): Host '192.168.7.210' is blocked because of many connection errors; unblock with ...

    一 问题现象 mysql远程连接报错 ERROR 1129 HY000 Host 39 192 168 7 210 39 is blocked because of many connection errors unblock with 3
  • 大裕量Softmax 损失函数--Large-Margin Softmax Loss for Convolutional Neural Networks

    ICML2016 Large Margin Softmax Loss for Convolutional Neural Networks 本文针对CNN网络中的 Softmax Loss 做出改进 xff0c 使之成为 Large Marg
  • Deep Learning 学习笔记(一)——softmax Regression

    Deep Learning 学习笔记 xff08 一 xff09 softmax Regression 茫然中不知道该做什么 xff0c 更看不到希望 偶然看到coursera上有Andrew Ng教授的机器学习课程以及他UFLDL上的深度
  • Debian 从稳定版升级到测试版

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 1 关于Debian 的发行版本 Debian 一直维护着至少三个发行版 稳定版 stable xff0c 测试版 testing 和 不稳定版 unstable 稳定版
  • VS2010中的调试技巧

    今天的博文将介绍Visual Studio中的一些实用调试技巧 这是受我朋友Scott Cate 他发表过几十篇很棒的VS技术文章 启发 他最近告诉我 xff0c 许多Visual Studio下的程序员 xff0c 甚至一些很有经验的开发
  • 把mysql的数据导出成txt

    把mysql的数据导出成txt select a from b into outfile 39 sqlfile a txt 39 my ini里需要设置secure file priv 61 d sqlfile linux中是 etc my
  • 理解神经网络:从神经元到RNN、CNN、深度学习

    本文为 AI 研习社编译的技术博客 xff0c 原标题 xff1a Understanding Neural Networks From neuron to RNN CNN and Deep Learning 作者 vibhor nigam
  • debian 系统版本 划分、识别、演进 的释疑(升级系统须知)

    2019独角兽企业重金招聘Python工程师标准 gt gt gt debian 系统版本 划分 识别 演进 的释疑 xff08 升级系统须知 xff09 http my oschina net emptytimespace blog 84
  • vnc远程不能登录,总是提示认证错误解决

    vnc无法登陆 xff0c 总是提示验证错误 34 An authentication error occurred See the server error log for details 34 then the server will
  • JavaScript 二进制转文件

    关于在javascript下 xff0c 如何将二进制转换成相应的文件并下载 首先 xff0c 我们需要得到二进制的数据以及相应的文件格式 xff0c 没有相应的格式也可以 xff0c 可以通过二进制来判断 xff0c 但相对会麻烦很多 x
  • 子网数、主机数与子网掩码的关系

    直接拿实际的例子说吧 xff0c 这样容易理解 1 利用子网数目计算子网掩码 把B类地址172 16 0 0划分成30个子网络 xff0c 它的子网掩码是多少 xff1f 将子网络数目30转换成二进制表示11110 统计一下这个二进制的数共
  • 人脸识别“SphereFace: Deep Hypersphere Embedding for Face Recognition”

    在开放集中进行人脸识别 xff0c 理想的特征最大的类内差距应小于最小的类间差距 作者提出了angular softmax xff08 A Softmax xff09 损失函数学习angularly discriminative featu
  • 私有云拥有哪些好处?

    更高的安全性和隐私 虽然公共云服务提供了一定程度的安全性 xff0c 但是私有云是一个更安全的选择 这是通过使用不同的资源池实现的 xff0c 这些资源池的访问仅限于防火墙 专用租用线路和组织的现场内部托管 更多的控制 由于私有云只能由一个
  • 透视学如何成像

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 透视学如何成像 xff1f 这其中是有规律可循的 所谓 当局者迷 xff0c 旁观者清 我们自身无法去证实或者判断透视现象的规律 xff0c 因为我们的视觉已经适应这种变化
  • win10 64位JLink v8固件丢失修复总结

    大早晨的调着调着程序 xff0c 视线没离开一会 xff0c 就发现jlink自动断开连接了 xff0c 然后重新拔插jlink 重启都不行 xff0c 才发现小灯已经不亮了 xff0c 原来是固件损坏了 xff0c 果断想办法修复这位大爷
  • STP/RSTP/MSTP的分析与对比

    一 xff0e 生成树相关的几个概念STP RSTP MSTP STP xff1a IEEE Std 802 1D 1998定义 xff0c 不能快速迁移 即使是在点对点链路或边缘端口 xff0c 也必须等待2倍的forward delay

随机推荐

  • 运维工程师的职责和前景

    运维工程师的职责和前景 运维中关键技术点解剖 xff1a 1 大量高并发网站的设计方案 xff1b 2 高可靠 高可伸缩性网络架构设计 xff1b 3 网站安全问题 xff0c 如何避免被黑 xff1f 4 南北互联问题 动态CDN解决方案
  • Snipaste强大离线/在线截屏软件的下载、安装和使用

    步骤一 https zh snipaste com xff0c 去此官网下载 步骤二 xff1a 由于此是个绿色软件 xff0c 直接解压即可 步骤三 使用 xff0c 见官网 ttps zh snipaste com 按F1开始截屏 感谢
  • SQL分页查询总结{转}

    开发过程中经常遇到分页的需求 xff0c 今天在此总结一下吧 简单说来方法有两种 xff0c 一种在源上控制 xff0c 一种在端上控制 源上控制把分页逻辑放在SQL层 xff1b 端上控制一次性获取所有数据 xff0c 把分页逻辑放在UI
  • Hadoop MapReduce 处理2表join编程案例

    2019独角兽企业重金招聘Python工程师标准 gt gt gt 假设文件1 表1 结构 hdfs文件名 t user txt 1 wangming 男 计算机 2 hanmei 男 机械 3 lilei 女 法学 4 hanmeixiu
  • 传统数据库“上云”之路

    2018 云栖大会南京峰会飞天技术汇 专场 上 xff0c 阿里云高级产品专家萧少聪从准备 迁移效率和迁移后效果三个方面分享了传统数据库迁移到阿里云数据库及后续使用情况的全链路解决方案 xff0c 针对主流数据库迁移到阿里云数据库的技术及实
  • Hadoop学习--URL方法访问HDFS数据--day04

    import java io ByteArrayOutputStream import java io InputStream import java net URL import org apache hadoop fs FsUrlStr
  • 解决vuepress报Error: Cannot find module ‘core-js/library/fn/object/assign问题(core-js版本与引入UI冲突问题)

    问题如图 原因 core js版本原因 解决方案 第一种 xff0c 在config文件 xff08 路径docs vuepress config js xff09 中加上以下代码 span class token function cha
  • SD-WAN与SDN:差异在于细节

    SD WAN和SDN xff1a 在很多方面类似 xff0c 从 SD 开始 SD WAN和SDN都有共同的遗产 xff0c 从控制平面和数据平面的分离开始 两者都设计为在商用x86硬件上运行 xff0c 两者都可以虚拟化 xff0c 并且
  • Linux命令模拟Http的get或post请求

    Http请求指的是客户端向服务器的请求消息 xff0c Http请求主要分为get或post两种 xff0c 在Linux系统下可以用curl和wget命令来模拟Http的请求 get请求 xff1a 1 使用curl命令 xff1a cu
  • 使用Python实现Hadoop MapReduce程序

    转自 xff1a 使用Python实现Hadoop MapReduce程序 英文原文 xff1a Writing an Hadoop MapReduce Program in Python 根据上面两篇文章 xff0c 下面是我在自己的ub
  • windows+R键的应用

    windows 43 R 然后输入以下几个命令 1 cmd 用于Windows命令行操作 比如 ping某个网络 看看是不是通的 或者directory等等Windows命令行操作 2 远程桌面连接 mstsc 3 dxdiag 是Wind
  • 用命令行方式关闭linux防火墙

    sbin iptables I INPUT p tcp dport 80 j ACCEPT sbin iptables I INPUT p tcp dport 22 j ACCEPT etc rc d init d iptables sav
  • cenotos 7桌面环境装mysql_CenotOS Linux 5 下Oracle 10g安装指南

    收集整理了一篇比较完美的CenotOS Linux 5 下Oracle 10g安装教程 分享个朋友们 xff01 Author xff1a David Young e4twood 64 gmail com Last 收集整理了一篇比较完美的
  • Curl命令使用解析大全

    自己翻译了好几天 xff0c 希望大家多多指正 linux下wget使用命令解析大全 名称 curl 传输URL 概要 curl 选项 URL 描述 curl是一个可以从服务器传输数据或者传输数据到一个服务器的工具 xff0c 支持以下协议
  • java核心技术读书笔记

    对象的三个特征 对象的行为 可以对对象施加哪些操作 或者可以对对象施加哪些方法 对象的状态 当施加哪些方法时 对象如何响应 对象的标识 如何辨别具有相同行为与状态的不同的对象 对象的行为是用可调用的方法定义的 对象的状态每个对象保存着描述当
  • centos vnc配置笔记

    1 首先查询是否安装VNC Server rpm qa grep vnc 如果有类似于 xff1a vnc server 的值返回说明已经安装了vnc server 如果没有安装采用yum安装 yum y install vnc 2 配置V
  • ONF解决方案与合作伙伴副主席Aseem Parikh:CORD的社区增长概况及全球发展趋势

    由天地互连 下一代互联网国家工程中心主办的 2017全球SDNFV技术大会 xff08 2017 chinasdn org xff09 于 2017年8月2 3日 xff0c 在北京国宾酒店火热开幕 在3日上午的大会中 xff0c ONF解
  • 视觉语言导航综述Visual Language Navigation

    abstract 视觉语言导航任务 Visual Language Navigation 是让智能体跟着自然语言指令进行导航 xff0c 这个任务需要同时理解自然语言指令与视角中可以看见的图像信息 xff0c 然后在环境中对自身所处状态做出
  • Android 8.0 系统编译解决卡在Ensuring Jack server is installed and started

    参考 xff1a https www cnblogs com zzb Dream 90Time p 9273844 html 这个解决方法是比较全的 xff0c 但是我所有操作都做了 xff0c 依然无法正常编译 解决这个问题花了我2天时间
  • [转]以下划线开头的变量名

    C 43 43 系 统头文件里将宏名 变量名 内部函数名用 开 头就是为了避免与用户用的名字冲突 因为当你 xff03 i nclude 系 统头文件时 xff0c 这些文件里的名字都有了定义 xff0c 如果与你用的名字冲突 xff0c