Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdint.h>
- #include <string.h>
- #include <stdlib.h>
- #include <stdio.h>
- typedef long long T1;
- typedef int64_t T2;
- #define T1FMT "%lld"
- #define T1VALUE 1
- #define T2VALUE 2
- T1 blah3(void *p1, void *p2)
- {
- T1 *t1p, *t1p2;
- T2 *t2p;
- T1 temp;
- t1p = p1;
- t2p = p2;
- *t1p = T1VALUE; // Write as T1
- *t2p = T2VALUE; // Write as T2
- temp = *t2p; // Read as T2
- t1p2 = (T1*)t2p; // Visible T2 to T1 pointer conversion
- *t1p2 = temp; // Write as T1
- return *t1p; // Read as T1
- }
- T1 test3(void)
- {
- void *p = malloc(sizeof (T1) + sizeof (T2));
- T1 result = blah3(p,p);
- free(p);
- return result;
- }
- int main(void)
- {
- T1 result = test3();
- printf("The result is " T1FMT, result);
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement