You should really specify whether you are talking about C or C++. Some people will tell you that C++ is a superset of C, but that isn't true. Structs are one of the notable exceptions.

You may define function pointers in C, and try to restrict their locale to a struct, but there are no guarantees that those who follow will adhere to your strictures.