uORB messaging subscribe/update


I was investigating uORB messaging and saw that there are two ways to receive uORB messages. One is

_manual_control_sub = orb_subscribe(ORB_ID(manual_control_setpoint));
orb_set_interval(_manual_control_sub, 4);
orb_copy(ORB_ID(vehicle_control_mode), _control_mode_sub, &_control_mode);

Then there is simply calling

uORB::SubscriptionData<manual_control_setpoint_s> _sub_manual_control_setpoint{ORB_ID(manual_control_setpoint)};

and in both cases the message is received (though the usage of the content of message is a little bit different).

Is there some difference in implementation between the two methods, or it doesn’t matter which is used?

Thanks for any help!