为什么C编译器没有检查枚举?
发布时间:2020-12-16 04:53:12 所属栏目:百科 来源:网络整理
导读:以下文字摘自 C Programming Language,2nd Edition,由C语言的创建者撰写(所以我认为它是正确的): Although variables of enum types may be declared,compilers need not check that what you store in such a variable is a valid value for the enumerati
以下文字摘自
C Programming Language,2nd Edition,由C语言的创建者撰写(所以我认为它是正确的):
我有些疑惑: >对于C语言中的哪些情况,编译器不会检查枚举的值? 解决方法
>枚举就像一个花哨的整数,并且它比定义整个加载的常量或预处理器宏作为要存储的常量值的名称更好,因为编译器(或编辑器)可以检查您是否使用了正确的名称和值以正确的类型.另一方面,只是一个int,没有什么可以阻止你输入一个你没有命名的值,这偶尔会有用. >在每种情况下都无法检查它们.如果将两个数字相加以获得将放入枚举类型变量中的值,该怎么办?它可以是在运行时生成的任何值,因此无法检查(至少没有大量开销). > C中的所有内容都不安全;几乎没有编译器可以完全阻止你滥用的功能.枚举是安全的,因为它们可以有效地防止程序员错误和混乱,而不是因为它们阻止你做一些愚蠢的事情.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |