_cmd value inside C functions

It's for Objective-C methods only, so you can't access it. The first two parameters passed to all Objective-C methods are self and _cmd, then whatever other arguments the actual method takes. Since neither self nor _cmd are passed to regular C functions, you can't access them.

There's nothing particularly magic about either variable.


The major use of the _cmd function is to get the method name in which it is called.

The use of the _cmd with some other functions has been written below.

NSLog(@"<%@:%@:%d>", NSStringFromClass([self class]), NSStringFromSelector(_cmd), __LINE__);

Instead of above line you can also use PrettyFunction

NSLog(@"%s", __PRETTY_FUNCTION__);