Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #define HOGE(a) printf("%s", a)
- #define FUGA(a) ((int)(a))
- typedef struct {
- int a;
- int b;
- } Hoge;
- typedef union {
- Hoge h;
- int a;
- } UN;
- int main() {
- Hoge h;
- h.a = 123;
- Hoge *p;
- p = &h;
- printf("pointer: %p\n", p); // Hogeのアドレスを表示
- printf("pointer with unsigned long: %lu\n", (unsigned long)p); // Hogeのアドレスを表示
- UN un;
- un = (UN)(*p);
- printf("Hoge#a %d\n", un.h.a); // unionのh属性=Hogeでキャストしてaを表示
- printf("UN#a = Hoge#a: %d\n", un.a); // Hogeのaはint。unionに保存されているHogeの最初のアドレスはintなので無事表示できる
- un = (UN)(234);
- printf("UN#a: %d\n", un.a); // unionのa属性=intでキャストして表示
- HOGE("hello macro\n");
- char a = 'a';
- printf("macro: %d\n", FUGA(a));
- }
Add Comment
Please, Sign In to add comment