This is often used after entity_load(). Note that unlike node_load() which returns an object, entity_load() returns an array of objects - even if you only asked for one. Be sure to get the entity out with something like reset() before passing the result to this function or you will get the unhelpful "Missing bundle property" error.

I hope this example will make it clear.
(a) Suppose you want to load a single entity, you can load it by two methods. You can either use reset after entity_load or you can use entity_load_single function.