const struct sockaddr FAR* name,
答案 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。