ef_vi_alloc_from_pd
Funktion von this c code nimmt Enum als letztes Argument:wie "c-style flags enum" aus C++ Code zu verwenden?
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)
In this c example wir Flaggen als unsigned vi_flags
definieren und es funktioniert:
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));
Aber in C++ funktioniert es nicht, ich habe Fehler kompilieren beim Aufruf von ef_vi_alloc_from_pd error: invalid conversion from ‘unsigned int’ to ‘ef_vi_flags’ [-fpermissive]
Ich habe versucht, vi_flags als enum zu definieren:
enum ef_vi_flags vi_flags;
vi_flags = EF_VI_FLAGS_DEFAULT;
vi_flags |= EF_VI_RX_TIMESTAMPS;
Aber das Kompilieren nicht zu, wenn ich tun "| =" error: invalid conversion from ‘int’ to ‘ef_vi_flags’ [-fpermissive]
Wie ef_vi_alloc_from_pd
von C++?
- wie man
vi_flags
erklärt und wie manef_vi_alloc_from_pd
nennt? - wie zu "| ="
vi_flags
? - Hinzufügen von Optionen zum Compiler?
Nur eine Besetzung verwenden. –
eine Besetzung verwenden wann? Wann ändere ich Flags oder wenn ich Funktion anrufe? Wie deklariere ich vi_flags? – javapowered