#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表示输入输出参数,指针指向的值会修改,且会读取
转载请注明原文地址: https://ju.6miu.com/read-12572.html