Не-void функции, используемые в пустом контексте?
Я использую SystemVerilog. Мой код:
function write_pixel_data(datastr ds);
/* some stuff here... but no return */
endfunction
Тогда я вызываю свою функцию следующим образом:
write_pixel_data(someval);
И я получаю предупреждение vcs:
Warning-[SV-NFIVC] Non-void function used in void context.
Но я ничего не возвращаю, я знаю, что могу бросить вызов функции в void, чтобы избавиться от предупреждения. Но почему он дает это предупреждение??!!
Спасибо.
2 ответа:
Если вы не объявили функцию как
void
и вызываете ее без присвоения возвращаемого значения чему-либо, вы увидите эту ошибку. Простое исправление:Однако будьте осторожны, вы не можете делать ничего, что "занимает время" в функции. Для этого вам понадобитсяfunction void write_pixel_data(datastr ds); /* some stuff here... but no return */ endfunction
task
.