Static IP vs DHCP Reservation
Solution 1:
The main advantage of using DHCP reservations is that the assignment of a "static" IP address is managed centrally. This can be helpful for example if you are often rebuilding a particular computer or constantly changing the OS or if setting a "static" IP address is cumbersome (DirectTV DVR for example).
Using DHCP reservations is also handy if you ever need to migrate to a new subnet. In most cases then you just need to change the subnet on the router\DHCP server and all the clients will automatically be updated to the new subnet.
Lastly, using DHCP reservations is nice because you have a central place that you can go and lookup the IP address of a machine, provided the router\DHCP server allows you to note a name in addition to the IP address and MAC Address.
The down side to DHCP Reservations is that you have to know the MAC address, not a huge deal, but depending on the Router\DHCP Server and the computers OS it may be more time consuming that just setting a static address on the machine.
Solution 2:
A is the only way to set a static IP address. The device itself is configuring its own IP address; that's a static address.
B, at the DHCP server (which might also be your router, but isn't always) is often known as a DHCP reservation. The terminology can vary, and it's like a static IP, but it really isn't. The device is set for DHCP, and then the DHCP server knows that the device's MAC should get a specific IP.
There is no C.
Solution 3:
The proper term is a Lease Reservation. This is where you set a specific address on your DHCP server for a MAC address. This is not like a static IP in the sense that, if there are no more addresses, and a node isn't using a reserved address, it will be given to another node if needed. So, in essence, with DHCP, there is no way to '100% guarantee' one particular address, but then again that's what DNS is for :-)
You probably won't run into this under normal circumstances, but it is worth mentioning.
Solution 4:
one reason why reservations are safer than static assignment is if one device, usually a printer, is set static, it could a source of future booby traps. I came across a really nasty case of this issue. Some pinpad at a restaurant was set to static and then forgotten. When it was accidentally turned on, it started conflicting with a newer static assignment. The entire network was going nuts. The pinpads wouldn't say address conflict, like a computer, but do strange things. If an admin is setting a static assignment, he/she has no clue about every device on the network, which could span multiple floors. Because of this, a conflicting static assignment could be made. And when the old device comes back up. Bam! One time I was setting up a static IP on a printer (long story) and used some crazy number in the subnet to avoid "hitting" another static assignment. It's like playing battleship, in reverse. With reservations, it's like static assignments, but all the assignments are noted in one place. You don't have to run around configuring embedded devices. Just copy paste some text and done. P.S. I do understand that reservations are still using DHCP. The client still needs to have the DHCP service running on the device. For more scale check out IPAM.