- 论坛徽章:
- 89
|
回复 31# Third-Edition
The C standard does not define what a pointer is internally and how it works internally. This is intentional so as not to limit the number of platforms, where C can be implemented as a compiled or interpreted language.
A pointer value can be some kind of ID or handle or a combination of several IDs (say hello to x86 segments and offsets) and not necessarily a real memory address. This ID could be anything, even a fixed-size text string. Non-address representations may be especially useful for a C interpreter.
第一句的意思是:对于我们目前常用的平台比如ia32,amd64,就是地址,但是对于某些平台,这个就不一定是地址。
第二段的最后,强调了interpreter。
这个是不是说:
1.对于C语言的“解释器”来说,这一点更加有利。据我所知,好像是有个C语言的解释器。
2.对于C语言的“编译器”来说,可能是地址,也可能不是,比如是某种内部的reference。 |
|