No. The compliation process destroys all metadata, including variable names, and the optimisation process makes it difficult to recover even a pseudocode replica of the original source.
Here's a highly simplified example. Let's say you write "foo++", where foo is an int. Depending on the compiler, this could compile to any of the following:
inc dword ptr [esp+12h]
- foo is kept as a local on the stack
inc dword ptr [00000f00h]
- foo is a heap variable
add dword ptr [00000f00h], 1
- another way to increment
mov eax, dword ptr [esp+12h]; inc eax
- move from the stack in to eax, then increment
- etc...
The possibilities are practically endless.
Your best bet is to look into something like Hex-Rays Decompiler, though it isn't cheap. It works with IDA to produce pseudo-C code, which you can use to discover how particular functions and routines work.