Get new post automatically.

Enter your email address:


Casting

When a variable is cast into a different type, the actual variable is not harmed. Here is a snippet from the program currently being examined in the tutorial:
 2:void somefunc(unsigned int fptr)
 3:{
 4:  *(float*)fptr=99.9;
 5:}
Try adding this statement between lines (4) and (5):
C Code
  printf("%d\n", fptr);
C++ Code
  std::cout << fptr << std::endl;
This line just prints fptr to the screen. But the point is, that fptr is printed to the screen as an unsigned int. Even though ftpr was cast into a float* in line 4, fptr was not permanently transformed into a float*.
Casting merely changes the way the compiler uses the variable at the point where the cast is made.