Указатель на функцию в структуре

Предположим, у меня есть следующие типы:

typedef uint8 (*P2MyFunc)(void);

typedef struct
{
    P2MyFunc ptr;
}MyStruct;

Учитывая экземпляр inst из MyStruct, есть ли разница между следующими вызовами?

(*inst.ptr)();
inst.ptr();

Оба, кажется, работают просто отлично, но первый может быть склонен к предупреждениям компилятора.

1 ответ

Они означают одно и то же в соответствии со стандартом C. Вы могли бы даже пойти еще дальше. Следующее ниже дает тот же результат:

(********inst.ptr)();
inst.ptr();
Другие вопросы по тегам