请看下面这段代码:
这是我早期做intel驱动的时候看到intel的驱动工程师写的代码,虽然这两个宏没有实际用途,但细细一看却发现大有用处。
#define IN #define OUT #define UAdress volatile unsigned int * #define Raw_buffer void * void SetHwiPortsDataReg(IN UAdress Register , IN int value) { _SetHwiPortsDataReg(Register,&value); } void _Out_Put_value(IN UAdress Register, OUT Raw_buffer buffer) { _Out_Put_value(Register,buffer); }
这里,IN和OUT的定义可以让代码更容易阅读,如上,IN表示把数据输入,OUT表示取数据,一个小小的技巧。