struct hostent {
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
};
请问各位大侠,在这个struct中的FAR*是什么作用的,为什么要用?什么时候应该用呢??
char FAR * h_name;
char FAR * FAR * h_aliases;
short h_addrtype;
short h_length;
char FAR * FAR * h_addr_list;
};
请问各位大侠,在这个struct中的FAR*是什么作用的,为什么要用?什么时候应该用呢??
具体哪里用我也不是很清楚。
我很少用的。(以前就看书有用过,自己没怎么用)
FAR,NEAR或far,near是DOS,16位Win时代的修饰符。
那时内存地址是以实模式方式分段组织的。
可寻址的范围是2^20=1024K=1M
又因为是16位的寄存器所以一个段为2^16=64K当程序要访问段内地址时默认就是NEAR/near方式。
寻址时仅仅包含段偏移就可以了。而要访问其他段的地址时,就需要加FAR/far修饰符。
这时,寻址时不但要求段偏移还要有段基址信息。在32位Windows程序中,对FAR,NEAR或far,near已经不区别了。
所以可以忽略它。WINDEF.H头文件中已经将FAR,NEAR或far,near定义为空字符。如果没有包含WINDEF.H头文件也可以设置编译选项。
/D_near= /D_far= /D__near= /D__far=以上
还有其它高见吗?
.....反正现在用不着了,呵呵