C++中一些未定义的宏是什么意思?
答案:3 悬赏:10 手机版
解决时间 2021-03-16 21:59
- 提问者网友:锁深秋
- 2021-03-16 02:34
比如:near和far是# define near 和# define far,我在看一些头文件的时候看到的,但是它什么都没有定义,我不知道是什么意思,有谁能帮忙解释一下?谢谢
最佳答案
- 五星知识达人网友:孤独的牧羊人
- 2021-03-16 03:33
一般这些未定义宏可以作为一些代码上的注释。
例如#define IN 和 #define OUT
定以后,你可以声明函数function(IN int a, OUT int &b);可以在不影响函数的情况下,直观显示那个是传入参数,哪个是传出参数。
另外的未定义宏可以用来防止重复定义。
如:某头文件定义代码有:
#ifdef TTTTT
#defin TTTTT
function();
#endif
这样当在工程里,该头文件被连续包含两次的时候,第二次包含不会再次定义function();而导致出现重定义的问题。
如果你的程序需要同时兼容32位和64位或者其他不同的平台。
那么也可以在程序中最初始时根据不同的环境定义一个宏,例如64位下#define SYSX64
这样如果代码中某些地方环境不同需要采用不同的方法是,可以通过#ifdef SYSX64区分
例如#define IN 和 #define OUT
定以后,你可以声明函数function(IN int a, OUT int &b);可以在不影响函数的情况下,直观显示那个是传入参数,哪个是传出参数。
另外的未定义宏可以用来防止重复定义。
如:某头文件定义代码有:
#ifdef TTTTT
#defin TTTTT
function();
#endif
这样当在工程里,该头文件被连续包含两次的时候,第二次包含不会再次定义function();而导致出现重定义的问题。
如果你的程序需要同时兼容32位和64位或者其他不同的平台。
那么也可以在程序中最初始时根据不同的环境定义一个宏,例如64位下#define SYSX64
这样如果代码中某些地方环境不同需要采用不同的方法是,可以通过#ifdef SYSX64区分
全部回答
- 1楼网友:洒脱疯子
- 2021-03-16 05:43
这种就是方便人阅读的。near和far我不太知道,给你举个常用的:IN,OUT
void func (IN int a, OUT int *b)
{
*b = a;
}
这里就是方便人阅读,让人一目了然,a是输入参数,b是输出参数的。
这里的near和far也都是一样的作用,你结合实际意义揣度一下就行了。
- 2楼网友:廢物販賣機
- 2021-03-16 04:58
在windef.h里应该还能看到如下
#undef far
#undef near
#undef pascal
#define far
#define near
把 far和 near定义成空,上面图里相当于near far不存在
far和near应该是以前继承下来的字段(我个人的理解,以前段跳跃不是分短jump和长jump)
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯