any012 发表于 2017-1-2 09:32:09

( void )ucSlaveAddress; ucSlaveAddress是个uchar变量,这是什么用法?

在看freemodbus代码,看到这个函数时:
eMBErrorCode
eMBRTUInit( UCHAR ucSlaveAddress, UCHAR ucPort, ULONG ulBaudRate, eMBParity eParity )
{
    eMBErrorCode    eStatus = MB_ENOERR;
    ULONG         usTimerT35_50us;
    ( void )ucSlaveAddress;
    ENTER_CRITICAL_SECTION();
    ...
}

( void )ucSlaveAddress;这句话不理解了,给的参数明明是个无符号字符变量,在前边价格void是什么意思?

海迹天涯 发表于 2017-1-3 08:39:32

在freemodbus-tcp中这个ucSlaveAddress参数是不使用的,这里用来防止编译器报警告。在嵌入式的操作系统代码中这种形式的代码很常见,一般都是用来防止编译器报警告,有些时候是强制转换,看情况的

风子 发表于 2017-1-2 21:28:02

不使用的参数,防止编译警告

ts2000 发表于 2017-1-2 23:44:25

( void )任意类型?

any012 发表于 2017-1-3 08:49:18

风子 发表于 2017-1-2 21:28
不使用的参数,防止编译警告

明白了,感谢。

andypanfan 发表于 2017-1-3 09:02:06

:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol:lol
页: [1]
查看完整版本: ( void )ucSlaveAddress; ucSlaveAddress是个uchar变量,这是什么用法?