Указатель на функцию в структуре
Предположим, у меня есть следующие типы:
typedef uint8 (*P2MyFunc)(void);
typedef struct
{
P2MyFunc ptr;
}MyStruct;
Учитывая экземпляр inst
из MyStruct
, есть ли разница между следующими вызовами?
(*inst.ptr)();
inst.ptr();
Оба, кажется, работают просто отлично, но первый может быть склонен к предупреждениям компилятора.
1 ответ
Они означают одно и то же в соответствии со стандартом C. Вы могли бы даже пойти еще дальше. Следующее ниже дает тот же результат:
(********inst.ptr)();
inst.ptr();