Advertisement
Guest User

Untitled

a guest
Aug 30th, 2016
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.72 KB | None | 0 0
  1. #include <stdint.h>
  2. #include <string.h>
  3. #include <stdlib.h>
  4. #include <stdio.h>
  5.  
  6. typedef long long T1;
  7. typedef int64_t T2;
  8. #define T1FMT "%lld"
  9. #define T1VALUE 1
  10. #define T2VALUE 2
  11.  
  12. T1 blah3(void *p1, void *p2)
  13. {
  14. T1 *t1p, *t1p2;
  15. T2 *t2p;
  16. T1 temp;
  17.  
  18. t1p = p1;
  19. t2p = p2;
  20. *t1p = T1VALUE; // Write as T1
  21. *t2p = T2VALUE; // Write as T2
  22. temp = *t2p; // Read as T2
  23. t1p2 = (T1*)t2p; // Visible T2 to T1 pointer conversion
  24. *t1p2 = temp; // Write as T1
  25. return *t1p; // Read as T1
  26. }
  27.  
  28. T1 test3(void)
  29. {
  30. void *p = malloc(sizeof (T1) + sizeof (T2));
  31. T1 result = blah3(p,p);
  32. free(p);
  33. return result;
  34. }
  35. int main(void)
  36. {
  37. T1 result = test3();
  38. printf("The result is " T1FMT, result);
  39. return 0;
  40. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement