首页 > 编程语言 >为什么有些编程语言不建议用下划线作为标识符开头?标识符的特殊字符。为什么不指定编译生成文件名, 默认是a.out?函数入口一定是main吗?

为什么有些编程语言不建议用下划线作为标识符开头?标识符的特殊字符。为什么不指定编译生成文件名, 默认是a.out?函数入口一定是main吗?

时间:2024-10-25 10:16:48浏览次数:9  
标签:Java 下划线 C# 开头 main 标识符

为什么有些编程语言不建议用下划线作为标识符开头?

  • C/C++中两个下划线开头的标识符可能是预留给运行时库的保留字。写代码的时候,就建议最好不要用下划线开头的标识符,避免冲突。最怕的是,编译器没提示错误,运行时产生奇怪的结果。

  • 但对于Java/C#而言,大部分情况下,这条规则并不适用。它们有更好地封装,哪怕下划线开头的变量也被限定在包或者类内部,不会和它们的运行时冲突。
    需要特别注意的是,微软为C#保留了几个关键字,如__arglist, 不确定未来会不会明确当做关键字。比较安全的做法是,尽量不以下划线开头做标识符。

  • 在Python中,下划线开头的标识符有特别的含义,单下划线开头代表protected类型,双下划线开头代表private,还有一些特定的方法例如__init__是系统定义的名字。

  • 仓颉对此无特别约束。

标识符的特殊字符

  • C/C++/ObjC不允许@和$作为标识符的一部分

  • Java允许$作为标识符一部分,例如:C#允许@a作为变量。

  • C#允许@作为标识符一部分。例如,Java允许$a作为变量。

  • Java和C# 甚至可以复用关键字作为标识符,例如$for和@for.

  • Python不允许@和$作为标识符

  • JS和Java类似,可以用$.

  • Swift允许用反引号包围作为标识符使用,关键字也适用:
    let `class` = 1
    print("class: \(`class`)")
    也支持用一部分Emoji符号作为标识符,例如:
    let

    标签:Java,下划线,C#,开头,main,标识符
    From: https://blog.csdn.net/cxsjabcabc/article/details/143227752

相关文章

  • DAPLINK 源码学习(1)BL 之 main() 函数
    目录bootloader主函数1sdk_init()2gpio_init()3config_init()4board_bootloader_init()5运行IF还是BL?6main_task()7总结bootloader主函数1)我们以stm32f103xb_bl为例,从bootloader项目的main()函数开始:(1)sdk_init():MCU初始化(2)gpio_init():USB相关引脚配......
  • 第6天:Intent和页面导航-补充材料——`MainActivity.kt`解读
    下面是对“第6天:Intent和页面导航”该文学习的更深层次的补充材料,对MainActivity.kt文件的理解。下面对`MainActivity.kt’文件中每一行进行详细解释:packagecom.example.intentdemo定义包名:这行代码指定了当前Kotlin文件所属的包。在Android项目中,包名通常是由反向......
  • Ubuntu系统中,使用matplotlib画图调用times new romain字体报错 findfont: Font family
    画图时报错,缺少字体findfont:Fontfamily['TimesNewRoman']notfound.FallingbacktoDejaVuSans.有两种解决方式:方式一:在线安装msttcorefonts包#安装msttcorefonts包这种方式需要ubuntu能连外网,否则因为访问source-forge失败而告终sudoaptupdatesudoapti......
  • Access导入外部数据时出现mx_FrmMain是怎么回事
    Access导入外部数据时出现mx_FrmMain的原因是:1、损坏的Access数据库文件;2、缺少或错误的引用;3、VBA代码错误。Access数据库文件可能已损坏,导致无法正确加载主窗体(mx_FrmMain)。一、Access导入外部数据时出现mx_FrmMain的原因1、损坏的Access数据库文件Access数据库文件可能已......
  • pear-admin-layui-main 4.0 admin.js bug 修复
    pearAdmin.instances.tabPage=tabPage.render({ elem:'content', session:param.tab.session, index:0, tabMax:param.tab.max, preload:param.tab.preload, closeEvent:function(id){ pearAdmin.instan......
  • Fault Domain深入分析
    FaultDomain深入分析......
  • 四种基本的编程命名规范(匈牙利命名法、驼峰式命名法、帕斯卡命名法、下划线命名法)
    匈牙利命名法匈牙利命名法是一种编程时的命名规范。基本原则是:变量名=属性+类型+对象描述,其中每一对象的名称都要求有明确含义,可以取对象名字全称或名字的一部分。要基于容易记忆容易理解的原则。保证名字的连贯性是非常重要的。据说这种命名法是一位叫CharlesSimonyi的匈牙......
  • C++中int main(int argc, char* argv[])形参解释
    在 intmain(intargc,char*argv[]) 中,argc 和 argv 是主函数 main 的参数,用于处理命令行输入参数。它们允许程序从命令行接收额外的输入值,常用于控制程序的执行行为或传递信息。参数解释argc(argumentcount):表示从命令行传递给程序的参数个数,包括程序本身的名字。它......
  • java标识符和数据类型
    标识符定义:Java所有的组成部分都需要名字。类名,变量名以及方法名都被称为标识符。注意:1)所有标识符都应该以字母(A—Z或a—z),美元符($)或下划线(_)开始。2)首字符之后数字和任意字符组合。3)不能使用关键字作为方法名或变量名。4)标识符是大小写敏感的。数据类型1)强类型语言:要......
  • aardio入门到精通04-标识符及命名规则、局部变量、成员变量、常量
    标识符、局部变量、名字空间、成员变量、importconsole;//一、标识符/*1)标识符是指编程语言中由起标识作用的英文字母、数字或中文字符、以及下划线组成的命名符号一般用来标识用户或系统定义的数据或方法,例如常量名、变量名、函数名等。2)标识符基本规则: -标识符......