来自ef_vi_alloc_from_pd的这个c码函数接受枚举作为最后一个参数:
int ef_vi_alloc_from_pd(ef_vi* vi, ef_driver_handle vi_dh,
struct ef_pd* pd, ef_driver_handle pd_dh,
int evq_capacity, int rxq_capacity, int txq_capacity,
ef_vi* evq_opt, ef_driver_handle evq_dh,
enum ef_vi_flags flags)在这个c例中,我们将标志定义为unsigned vi_flags,它起作用:
unsigned vi_flags;
vi_flags = EF_VI_FLAGS_DEFAULT;
if( cfg_timestamping )
vi_flags |= EF_VI_RX_TIMESTAMPS;
TRY(ef_vi_alloc_from_pd(&res->vi, res->dh, &res->pd, res->dh,
-1, -1, 0, NULL, -1, vi_flags));但是在c++中它不起作用,我在调用ef_vi_alloc_from_pd error: invalid conversion from ‘unsigned int’ to ‘ef_vi_flags’ [-fpermissive]时有编译错误
我试图将vi_flags定义为enum:
enum ef_vi_flags vi_flags;
vi_flags = EF_VI_FLAGS_DEFAULT;
vi_flags |= EF_VI_RX_TIMESTAMPS;但是当我做"|=“error: invalid conversion from ‘int’ to ‘ef_vi_flags’ [-fpermissive]时,这也不能编译
如何使用来自ef_vi_alloc_from_pd的c++?
vi_flags和如何调用ef_vi_alloc_from_pdvi_flags发布于 2016-09-19 09:30:04
你可以这样做:
ef_vi_flags vi_flags = ef_vi_flags(EF_VI_FLAGS_DEFAULT | EF_VI_RX_TIMESTAMPS);https://stackoverflow.com/questions/39569664
复制相似问题