Guest User

Untitled

a guest
Jan 23rd, 2018
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.83 KB | None | 0 0
  1. #include <stdio.h>
  2.  
  3. #define HOGE(a) printf("%s", a)
  4. #define FUGA(a) ((int)(a))
  5.  
  6. typedef struct {
  7. int a;
  8. int b;
  9. } Hoge;
  10.  
  11. typedef union {
  12. Hoge h;
  13. int a;
  14. } UN;
  15.  
  16. int main() {
  17. Hoge h;
  18. h.a = 123;
  19.  
  20. Hoge *p;
  21. p = &h;
  22. printf("pointer: %p\n", p); // Hogeのアドレスを表示
  23. printf("pointer with unsigned long: %lu\n", (unsigned long)p); // Hogeのアドレスを表示
  24.  
  25. UN un;
  26. un = (UN)(*p);
  27. printf("Hoge#a %d\n", un.h.a); // unionのh属性=Hogeでキャストしてaを表示
  28. printf("UN#a = Hoge#a: %d\n", un.a); // Hogeのaはint。unionに保存されているHogeの最初のアドレスはintなので無事表示できる
  29. un = (UN)(234);
  30. printf("UN#a: %d\n", un.a); // unionのa属性=intでキャストして表示
  31.  
  32. HOGE("hello macro\n");
  33. char a = 'a';
  34. printf("macro: %d\n", FUGA(a));
  35. }
Add Comment
Please, Sign In to add comment