首页 > 其他分享 >语言的枚举

语言的枚举

时间:2024-09-16 14:25:33浏览次数:3  
标签:Java 语言 C# C++ 枚举 整数 类型

不同语言的枚举

  • C/C++枚举本质是整型,在Java中是对象,而非基本类型,可通过instanceof Object判断是否是对象类型。C#与Java不同,枚举是值类型。
  • C语言更纯粹,枚举绝对当成整数,可以对枚举变量用整数赋值,甚至可以做自增运算。C++做了一定约束,可以将枚举变量赋值给整数,但不能反过来,另外不允许自增之类的运算。从使用上,C#必须带上枚举类型名,C/C++完全不用顾忌。
  • Java语言的枚举更严格,因为它是对象,绝对不能和整数有任何直接来往。话说面向对象语言应该更早引入枚举,事实上Java 5.0版本才引入枚举类型。
  • 大部分脚本语言都对于枚举没太大兴趣,一方面枚举的静态类型不符合脚本动态类型。当然,万事不必然,Python 3.4之后和Javascript ES6之后也支援枚举。
  • Ada是一门对枚举数值范围支持很好的语言,也许源自它本身是安全设计。
  • C#枚举不能定义在方法里面,可以放在命名空间或者类里面。C/C++允许在函数中定义枚举。

枚举的内部类型

  • C/C++常规枚举默认类型为整型,具体取决于实现。C++11对于作用域内枚举引入了类型控制,默认是int, 可指定枚举使用的类型,比如short或者long. 形如:enum class : short Weekday { Monday, Tuesday };


微风不燥,阳光正好,你就像风一样经过这里,愿你停留的片刻温暖舒心。

我是程序员小迷(致力于C、C++、Java、Kotlin、Android、iOS、Shell、JavaScript、TypeScript、Python等编程技术的技巧经验分享),若作品对您有帮助,请关注、分享、点赞、收藏、在看、喜欢,您的支持是我们为您提供帮助的最大动力。

欢迎关注。助您在编程路上越走越好!

标签:Java,语言,C#,C++,枚举,整数,类型
From: https://blog.csdn.net/cxsjabcabc/article/details/142302317

相关文章

  • C语言中的GCC的优化和数组的存放方式、Cache机制、访问局部性
    “我们仍需共生命的慷慨与繁华相爱,即使岁月以刻薄和荒芜相欺”文章目录前言文章有误敬请斧正不胜感恩!第一题:***什么是gcc:***C语言中,“gcc-O2”是使用GCC编译器时的一个编译选项。第一部分:为什么程序一输出0,而程序二输出1?第二题:第二部分:为什么两个循环版本的性能......
  • 并发与并行的区别:深入理解Go语言中的核心概念
    在编程中,并发与并行的区别往往被忽视或误解。很多开发者在谈论这两个概念时,常常把它们混为一谈,认为它们都指“多个任务同时运行”。但实际上,这种说法并不完全正确。如果我们深入探讨并发和并行的区别,会发现它不仅是词语上的不同,更是编程中非常重要的抽象层次,特别是在Go语言......
  • 大语言模型可以“听”和“说”
    文章介绍了Mini-Omni模型,这是一种开源的端到端多模态大语言模型,旨在实现实时语音交互。为了解决现有模型在语音交互中的延迟问题,作者提出了文本指令的并行生成方法和批量并行解码策略,这些方法能够在保留原有语言模型推理能力的同时,显著提升语音输出的实时性和质量。此外,文章还介绍......
  • Thinkphp在线客服系统源码多语言外贸版_PHP客服系统源码Uniapp开发搭建+论文设计
    在线客服系统是现代企业与客户沟通的重要工具,它不仅能够提升客户满意度,还能有效提高企业的工作效率。本文将详细介绍在线客服系统的源码开发搭建过程,包括需求分析、技术选型、系统架构设计、关键模块实现、测试与优化等各个环节,并辅以代码实例,帮助读者深入理解并实践。......
  • 【USB3.0协议学习】Topic4·USB3.0的Port Connect State Machine和设备枚举
    上一节的文章【USB3.0协议学习】Topic2·USB3.0的LTSSM分析中我们详细分析了USB3.0协议中的链路训练状态机(LTSSM)的各状态和跳转条件,覆盖了所有LTSSM状态。本文我们将从Roothubport和DevicePort的角度讨论其PortConnect状态机。该状态机相比LTSSM,是更高层次的状态机,取决于具体......
  • 【Go开发】Go语言基本语法入门:数据类型与方法定义
    文章目录环境准备一、引言二、Var关键字三、数据类型1.整型符号表示值的范围2.浮点型精度范围性能3.布尔型4.字符串三、变量声明1.指定变量类型2.自动推导类型3.批量声明四、方法定义五、总结环境准备开发环境:MacOSGo版本:goversiongo1.23.1darwin/am......
  • 鹏哥C语言39---分支/循环语句练习:猜数字游戏
    #define_CRT_SECURE_NO_WARNINGS#include<stdio.h>#include<stdlib.h>#include<time.h>//voidfun(inta[]) //因为传过来的是地址,所以应该用一个指针变量来接收,故这里的a本质上是个指针变量//{//   printf("%zu",sizeof(a));//输出8 在x64下,指针大小是......
  • 【C语言】 结构体与位段
    系列文章目录C结构体与位段文章目录系列文章目录前言一、结构体的定义与声明1.结构体的定义2.结构体类型的声明结构的声明结构体变量的创建和初始化3.结构的特殊声明4.结构的自引用二、结构体内存对齐1.对齐规则为什么存在内存对齐?修改默认对齐数三、结构体传参......
  • Python调用C语言动态链接库
    调用方法如果觉得Python性能不够,可以使用C、C++或Rust、Golang为按标准C类型。为Python编写扩展。Python通过自带的ctypes模块,可以加载并调用C标准动态链接库(如.ddl或.so)中的函数。常用的操作为:importctypes#加载动态链接库lib=ctypes.CDLL("./xxx.so")#声明要调......
  • C语言:链表
    链表是一种常见的基础数据结构,它由一系列节点(Node)组成。每个节点包含两部分:数据域(存储数据)和指针域(存储下一个节点的地址)。链表的特点是元素在内存中不一定连续存储,而是通过指针连接起来。以下是链表的一些基本特点:动态性:链表的长度可以动态变化,不需要在创建时指定大小。灵活......