#define OUT
#define IN
#define INOUT
在工程中会有类似于上面这种宏定义出现,到底表示什么意思呢?如下一段程序:
#include<iostream>
#define OUT
#define IN
#define INOUT
void function1(OUT int* p)
{
*p = 10;
return;
}
void function2(IN int* p)
{
printf("%d\n", *p);
return;
}
void function3(INOUT int* p)
{
if (*p == 10)
{
printf("%d\n", *p);
}
return;
}
int main(void)
{
int a = 0;
function1(&a);
function2(&a);
function3(&a);
system("pause");
return 0;
}
这个只在逻辑上起作用,IN 表示输入参数,指针指向的值不会修改;
OUT 表示输出参数,指针指向的值会修改,且不会读;
INOUT表示输入输出参数,指针指向的值会修改,且会读取