perhap you havent defined value or temp in your code as the rest of the code is straight forward C or it could even be something with the bracket aound
=(unsigned char*)_Value; , these are just guesses as i'm newish to C
1. Variable "temp" has already been declared in the current scope.
2. Variable "_Value" is not defined.
3. This statement appears outside of a function.
4. Since this statement declares the variable "temp," it must appear before most other executable statements. This may not be the case in your original code and the previous compiler may be more foregiving of such transgressions.