一例invalid conversion from ‘int’ to ‘modbus_error_recovery_mode’

使用libmodbus

modbus_set_error_recovery(ctx,
                              MODBUS_ERROR_RECOVERY_LINK | MODBUS_ERROR_RECOVERY_PROTOCOL);

遇到错误
image
查了一圈原因,发现因为用的g++编译导致,改成gcc就可以了。
原因
C语言中枚举的本质是整型,因此枚举变量可以用任意整型赋值,但是在C++中枚举变量,只能用被枚举出来的元素初始化。

posted @ 2022-02-15 20:24  zhaogaojian  阅读(221)  评论(0编辑  收藏  举报