Chinaunix首页 | 论坛 | 博客
  • 博客访问: 342775
  • 博文数量: 41
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 476
  • 用 户 组: 普通用户
  • 注册时间: 2016-09-01 19:08
个人简介

Android/Linux/音频/驱动

文章分类

全部博文(41)

文章存档

2017年(21)

2016年(20)

我的朋友

分类: 其他平台

2017-06-13 11:53:56

【正文】 
  这 2 天在回顾《内核设计与实现(第3版)》这本书时又看到了“提领”这种说法,它出现在书上第 75 页。估计译者当时也不知道应该翻译成什么中文词汇比较好,所以在译文后加上了英文原文“dereference”。书上的原文是这样的:

节约两次提领(dereference) 
  如果你碰巧已经得到了 next 和 prev 指针,你可以直接调用内部链表函数,从而省下一点时间(其实就是提领指针的时间)。前面讨论的所有函数其实没有做什么其他特别的操作,它仅仅是找到 next 和 prev 指针,再去调用内部函数而已。……但这只有在向前和向后指针确实已经被提领过的情况下才有意义。……

  说实话,当我第一次看到“提领”这个词时我完全不能理解,当时第一反应是:这好像是个古代官职,可这书是讲 Linux 内核的啊,那这到底是什么!? 
  幸亏译者给出了“dereference”这个原文,按照构词法来看它实际上是由“de-”前缀和“reference”单词组成。“reference”我们在源码或文档里见得多了,是“引用、参考”的意思,“de-”前缀则有“去除、去掉、反向”之意。这类常见的构成词对有很多,比如:

  1. compose - decompose(组合 - 分开)
  2. construct - deconstruct(构建 - 拆毁)
  3. emphasize - deemphasize(强调 - 忽略)
  再结合原文里“如果你碰巧已经得到了 next 和 prev 指针,你可以直接调用内部链表函数……这只有在向前和向后指针确实已经被提领过的情况下才…”这样的解释,所以这个所谓的“提领”其实就是“获取指针地址或引用地址上的值”的意思,按照构词法可直译为“引用解析”。 


  维基百科上对“dereference”的解释也印证了我这种说法的正确性:

The dereference operator or indirection operator, denoted by “*” (i.e. an asterisk), is a unary operator (one operator) found in C-like languages that include pointer variables. It operates on a pointer variable, and returns an l-value equivalent to the value at the pointer address. This is called “dereferencing” the pointer.


  搞不懂书上为什么当时要翻译成“提领”这个怪模怪样的词,直接翻译成“引用解析”或类似的表达岂不是更容易让人理解?

【题外话】 
  当时我的思想还比较单纯,没有现在这觉悟,心想这种词汇含义的小问题应该早就有人解释过了,于是到号称“全球最大中文搜索引擎”的某度上搜索。得到的唯一有用信息是:“提领”还真是个古代官职名。

阅读(2827) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~