首先,C++里关于下划线的问题是源于C语言,因为C++允许用extern “C”来修饰代码以C语言语法方式编译。然后说C语言里的下划线:C语言确实允许以下划线开头的函数存在,实际上你用一个下划线开头的函数名或者变量是没问题的,但有可能会发生命名冲突。凡是以两个或一个下划线开始,后面紧跟着一个大写字母的标识符,不管它出现在哪里,都是保留给编译程序或标准库函数使用的。此外,凡是以一个下划线开始,后面不管跟着什么内容的标识符,如果它出现在文件范围内(即它不是出现在一个函数内),那么它也是被保留的。如果你用一个保留的标识符来作一个变量的名称,结果是没有定义的(程序可能无法编译,或者可以编译但会崩溃)。即使你能非常幸运地找到一个目前还没有被你的编译程序或函数库使用的标识符,你也应该记住这样的标识符是保留起来供将来使用的。因此,最好还是避免使用以下划线开始的变量名或函数名。举例说明:VC里getch函数不是一个标准库函数,因此,它的名字是_getch,大多数编译器都把非标准库、但又是编译器自己提供的库函数以下划线开头。另外,也有编译器的main函数在编译完成以后,名字是_main,如果你自己写了一个函数叫_main,那么编译器可能不知道最终该链接哪个。所以,你可以理解为:编译器需要预留一些名字,为了方便起见,大多数编译器预留的名字都是以下划线开头的,久而久之就形成了标准。虽然下划线开头也可以用,但不推荐使用,因为容易造成名字冲突。

C语言下划线开头的函数相关推荐

  1. python中__init__下划线怎么打出来___init__()-------“_”下划线开头的函数

    1.linux kernel中双下划线开头的函数 常常, 当你查看内核 API 时, 你会遇到以双下划线(__)开始的函数名. 这样标志的函数名通常是一个低层的接口组件, 应当小心使用. 本质上讲, ...

  2. python中那些双下划线开头的函数和变量

    天下苦秦久矣. 看别人的源码总是被各种下划线带晕了,总算偶得妙文,开疑解惑. 原文预估成文于2015之前,作者不详,传播过程中许多格式不幸丢失. 本人不忍佳篇失传,斗胆稍加修缮,增补格式,希望不损原意 ...

  3. python中那些双下划线开头得函数和变量

    Python中下划线---完全解读 Python 用下划线作为变量前缀和后缀指定特殊变量 _xxx 不能用'from module import *'导入 __xxx__ 系统定义名字 __xxx 类 ...

  4. php变量前边下划线_【变量】关于单下划线、双下划线开头变量的含义

    C语言中变量/函数命名以单下划线(_)和双下划线(__) 开头的意义 以单下划线(_)表明是标准库的变量 双下划线(__) 开头表明是编译器的变量 建议自己在命名的时候不要用下划线开头,避免与标准库中 ...

  5. C语言中的标识符以字母或下划线开头,牛逼大神整理的C语言基础知识,你确定你不码下来?...

    [[怪兽爱C语言]牛逼大神整理的C语言基础知识,你确定你不码下来?]https://toutiao.com/group/6577344220355363341/?iid=15906422033& ...

  6. python中标识符下划线用作开头_python python中那些双下划线开头的那些函数都是干啥用用的...

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  7. python中那些双下划线开头的那些函数都是干啥用用的

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  8. python属性名以两个下划线开头_python python中那些双下划线开头的那些函数都是干啥用用的...

    1.写在前面 今天遇到了__slots__,,所以我就想了解下python中那些双下划线开头的那些函数都是干啥用用的,翻到了下面这篇博客,看着很全面,我只了解其中的一部分,还不敢乱下定义. 其实如果足 ...

  9. python变量名可以用下划线开头吗_python以下划线开头的变量和函数的作用

    在python中,我们经常能看到很多变量名以_下划线开头,而且下划线的数量还不一样,那么这些变量的作用到底是什么? 变量名分类: # 以数字.字母开头: 正常的公有变量名 a = 1 def aa() ...

最新文章

  1. 实现人脸识别“干货”
  2. ubuntu 安装 phpstorm
  3. 【MM模块】Subcontracting 委外加工(外包)—1
  4. REVIT模型之机器人瓦力
  5. linux 下opencv安装教程,linux 下 opencv安装
  6. android unbound prefix
  7. Python--print用法汇总
  8. 安装完最小化 RHEL/CentOS 7 后需要做的 30 件事情(四)
  9. Java配置文件读取写入通用类库:PropUtils 属性文件类
  10. [Swift]LeetCode882. 细分图中的可到达结点 | Reachable Nodes In Subdivided Graph
  11. 连接到手机热点显示无法解析服务器,Win10连接到手机热点却无法上网的解决方法...
  12. windows 组播收不到消息_只需2步,轻松解决登录微信电脑版后,手机收不到消息提醒的问题...
  13. Day001--Scala中的下载安装配置及下载安装集成开发环境IDEA
  14. Deep Blind Video Super-resolution
  15. 反转链表问题的递归解法
  16. git设置记住用户名和密码,不用每次都输入
  17. 007.UG_NX工程图功能
  18. Android Gradle多渠道和自动化打包(深入篇)
  19. Android APN的设置问题 默认“已起用数据” 关闭
  20. Ultimate, Community, Educational 终极版 社区版 教育版 区别 不同

热门文章

  1. 创业是互联网创业好还是实体创业好? 营销值得学
  2. Image Processing and Computer Vision_Review:Local Invariant Feature Detectors: A Survey——2007.11...
  3. 【智能制造】博创智能注塑生产智能化应用之路
  4. 全国天气预报api接口
  5. OpenGL编程轻松入门之显示例表
  6. Maven Repository下载开源软件jar包
  7. 线上 2022 Apache IoTDB 物联网生态大会 | 倒计时2天!各方祝福温暖满满~
  8. 星药科技李成涛:人工智能在药物研发中的应用
  9. web前端开发基础教程一
  10. 1024程序员节!!