什么意思在c?

时间:2010-10-26 13:57:55

标签: c pointers

const struct sockaddr FAR* name,

3 个答案:

答案 0 :(得分:21)

这是分段内存架构时代的旧版本。它基本上意味着“这是一个指针,需要能够指向任何地址,而不仅仅是与使用它的代码在同一段中的东西”。

查看更多或wikipedia page

答案 1 :(得分:4)

far在C中没有任何意义。查看C99 standard [PDF],看看是否能找到远指针的提及。远端指针是针对8086/80286体系结构的编译器添加的扩展,为分段内存模型提供支持。

答案 2 :(得分:2)

如果 nothing 除非你碰巧使用的是16位x86编译器。

如果您查看Win32标头WinDef.h(在Visual Studio中,只需右键单击源中的单词FAR并选择“转到定义”,您将看到它是一个定义为{{1}的宏},反过来也是一个定义为什么都没有的宏!

只允许将Win16传统源代码编译为Win32。在16位x86编译器中,far是一个编译器扩展关键字,用于支持seg :: offset指针,这些指针解析为20位地址(16位x86只有1Mb地址空间!)。它们与16位far指针不同,后者仅包含当前段的:: offset。