永发信息网

C++ 在这里未定义的宏 near和far是什么意思啊

答案:5  悬赏:50  手机版
解决时间 2021-03-31 22:01
C++ 在这里未定义的宏 near和far是什么意思啊
最佳答案
在WinDef.h里应该还能看到如下

#undef far
#undef near
#undef pascal

#define far
#define near

把 far和 near定义成空,上面图里相当于near far不存在

far和near应该是以前继承下来的字段(我个人的理解,以前段跳跃不是分短jump和长jump)追问near和far既然不存在,为什么还要加到这些代码里面追答它只是在目前的windows系统里可能用不着,不代表它在任何时候都没有用

一些同时支持linux和windows的C、C++代码,你会看到更多的宏定义,也有很多时候是空定义追问我听一个网友说好像#define XXX属于条件编译,但是我还是不懂int near、BOOL near、BOOL far是啥意思啊追答最简单的c/c++参考文档CLib.chm里:

#define macro-name replacement-string

#define命令用于把指定的字符串替换文件中的宏名称 . 也就是说,
#define使编译器把文件中每一个macro-name替换为replacement-string. 替换的字符串结束于行末

#if, #ifdef, #ifndef, #else, #elif, #endif

这些命令让编译器进行简单的逻辑控制. 当一个文件被编译时, 你可以使用这些命令使某些行保留或者是去处

这些控制命令是你所说的条件编译吧,没有什么特别的意思,跨平台代码有时候需要依赖这些命令

#define就是简单理解,替换就是了追问我没有C/C++的帮助文档,MSDN我也不会用,能把你的CHM帮助文档文件给我一份莫?谢谢!追答有一个叫cfree编译器带的说明文档,一般够用了
msdn主要是很多的windows api介绍而已,windows api多到很多人都想吐,自然也就被很多人鄙视了
全部回答
我觉得跟汇编有关。near近转移,不跨段,far远转移,跨段。
这是微软自己定义的c语言关键字。iso c 是没有的追问ISO C?是什么东西?追答c语言国际标准,far和near是微软以前的c语言关键字
near和far是用来方便阅读的,在C++中,似乎是有这样两个定义的,一个叫near指针,是指占16位的指针,一个叫far指针,指占32位的指针。
所以在这个头文件定义里,在后面添加空定义的near和far就是为了告诉用户这个指针变量是near指针还是far指针。
near和far就是起到了一个方便阅读的作用,并没有代码上的意义。追问同样是宏定义,为什么所占的内存空间不同?有16位也有32位的?这是由什么决定的?
这是古老年代的编译器留下的痕迹。
那时有近调用与远调用,近调用是64K区域内的调用,超出64K区域的地址就是远了。每64K叫一个“段”,跨段就是远。

现在 理解成空就可以了。
要找不到 near, far 加2句:
#define near
#define far
就可以了。
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
没过百天有重孝的人参加葬礼注意什么?
眼镜半框好看还是全框好看?
excel中参数设置
在割了凹槽的木板上 用丙烯颜料作画 倒入树脂
为什么做好的CAD平面图在其他计算机上打开反
缺钱么被拒过得来
我的世界手机版0.8.1服务器,最好带新手任务
84110爱情解读啥意思
流行之王里周锐在 学校里唱的那首歌叫什么名
单选题2010年11月1日零时,是第六次全国人口
i3 3220频率3.3变成2.1怎么回事
CAD怎么定中心 然后标坐标
我国少数民族最多的省份是________(写全名)
这个棋叫什么?怎么下?
哪种红木对身体好
推荐资讯
染烫完总是掉头发怎么办啊??
重庆市“一圈”、“两翼”具体包括哪些区县?
和尚坡到恒丰步行街坐几路车
三国如龙传怎么快速升级 新手快速升级攻略
ccsv5打开指定指定工作空间路径时报错怎么回
英语原文点燃蜡烛照亮他人者,也不会给自己带
为什么在煤场堆放煤时,常在中部插些竹筒?
有机化学如图反应中三个弯箭头分别代表什么意
泰国的国际旅游收入与国民生产总值之比达到6.
系统丢失dll重装系统能解决吗
为什么去泰国做试管的多,台湾母语不是更方便
关于祭奠的诗词
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?