我正在寻找一个MODBUS lib。我发现了一个,但我无法理解这个宏在做什么以及这意味着什么
#define __UNUSED(x) ( ( void ) ( (x) == (x) ) ) //what this macro doing**
int
target_initialise( void * Target ) {
__UNUSED( Target );
return 0;
}
void *
target_alloc( void * Target, unsigned int Bytes ) {
__UNUSED( Target );
__UNUSED( Bytes );
return NULL;
}
void
target_free( void * Target, void * Data ) {
__UNUSED( Target );
__UNUSED( Data );
}
宏扩展到
int
target_initialise( void * Target ) {
(void) (Target == Target);
return 0;
}
它用于使编译器警告静音。例如,如果您使用gcc编译并使用-Wall
,那么编译器会警告很多事情,例如未使用的变量。所以在target_initialise
中没有使用变量Target
,编译器会对此发出警告,但使用宏编译器会保持沉默。
我不知道为什么代码会这样做。