【问题标题】:Why is a numeric handle sometimes referred to as a "name"? [closed]为什么数字句柄有时被称为“名称”? [关闭]
【发布时间】:2016-01-03 22:37:13
【问题描述】:

我注意到在各种 C 库中,尤其是在 OpenGL API 中,“名称”一词用于描述简单的整数值(通常是无符号的); example here。听起来在其他开发领域可能被称为 id(数据库键)或 句柄(文件描述符),这就是我对缺席感到惊讶的原因在这些术语中我通常更喜欢“name”,因为“name”与字符串标识符或描述冲突。我猜是历史原因。

谁能告诉我这个术语的背景以及它是否仍然被认为在 C 社区中流行?

注意这不是关于 OpenGL 的问题,所以请我们保持一般性的答案 - 谢谢。

【问题讨论】:

  • 我不明白,为什么这很重要,有用?
  • 在抽象意义上,句柄是它所指事物的名称。
  • @iharob 历史是我们如何走到今天的地步(使用 C),所以这很重要。如果可能的话,我也想写惯用的 C。
  • 也许“名称”一词暴露了对源代码的关注,而不是其含义。以您的 OpenGL 示例为例,称为名称的参数是枚举类型,通常希望源代码中给出的值用相关的枚举常量(GL_TEXTURE_BASE_LEVELGL_TEXTURE_SWIZZLE_R 等)表示,在源代码意义上是字母数字。
  • @ArcaneEngineer 我知道我是一名物理学家,一切都与历史有关。没有人会明白量子力学从何而来,他们不知道历史。

标签: c semantics naming


【解决方案1】:

实际上,您链接到的 API 是在 OpenGL 实现的内存空间中创建一个结构,并且您正在使用枚举来查询该结构的字段以指示哪个字段。文档将此称为“符号名称”,这是代码中用于查询程序内存空间中结构的等效标记: x = texture.border_color 变为 glGetTexParam(target, texture, GL_TEXTURE_BORDER_COLOR, &x)

所以枚举参数GL_TEXTURE_BORDER_COLOR等价于字段的符号名称border_color

【讨论】:

  • 只是在这里为其他阅读此内容的人添加 namesymbolic name 的缩写形式,这是 C 文献中使用的事实上的术语(虽然可能不常用)。有关示例,请参阅此link - “C 和数值分析编程解决方案”的第 35 页。感谢皮特的支持。
猜你喜欢
  • 1970-01-01
  • 2019-09-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-07
  • 2018-06-11
  • 2011-01-02
相关资源
最近更新 更多