c - 为什么 C 语言不像 Pascal 那样具有子范围类型?
问题描述
为什么C语言有枚举类型,但没有 Pascal 的范围类型?在 Pascal 中,我们这样写:type index = 1...100;
或者像这样:
type letter = 'a'...'z';
。
解决方案
C 语言的设计者实现了一种非常简单的语言,其功能只是那些可以(大部分)直接翻译成一个或少数机器代码指令的功能。CPU 无法轻松完成的任何事情都必须通过函数调用来提供。
这使得编译器非常容易编写,并确保更容易看出性能问题可能出在哪里。
实现一个范围需要几个机器代码指令。此外,如果将其用作类型限定符,则意味着必须将范围检查添加到所有需要进一步机器代码指令的算术运算中。
除了通过函数调用(动态内存分配、字符串操作、映射等)之外,C 不支持其他语言支持的许多其他构造。
推荐阅读
- javascript - Android webview 显示旧网站内容而不是新网站内容
- r - 查找 0 和 1 的所有组合以及特定数量的 1
- java - 字符串与输入字符串的连接
- javascript - Dynamics CRM 使用 XrmServiceToolkit.Soap 获取全局 OptionSet 数据
- python - 递归函数完成后返回 0。为什么'return 0'不覆盖函数的先前返回值?
- python - Python中非英语语言的拼写检查器
- ios - iOS MPMediaItem:在 iTunes 中设置的选项
- android - 在android的折线图中绘制Json数据
- ios - 在 React Native 中更新应用后维护 Session
- python - 从 SET 数据类型中提取匹配表达式