view test/macro.c @ 585:a5b902b20300 ia32-no-rname

ia32 reconfigure end (correct?)
author kono
date Wed, 18 Jan 2006 12:26:48 +0900
parents 492f06738550
children 0497fa2e2414
line wrap: on
line source

int printf(const char *format, ...);


int heap[100];

#define car(e) (heap[(int)(e)])
#define cadr(e) (heap[((int)(e))+1])

#define TEST
int i;
TEST

char *a = "test" "test";

#define TEST0 33
#define TEST111 TEST0

#define c(a,b)  g(a+1,b+1)
#define g(a,b)  printf("#0018:%d %d\n",a+1,b+1);
#define d(a,b)  cadr(b)+3
/*

    #define stdio stdio
    #define f(a,b) aho+a+b
    f (a,b)
*/

// name concateneation

#define name(a,b)   name_##b(a)

#define names(a,b)   name_ ## b(a)

#define name_hoge(c)   (c+a)


int
main() {
   int a,b,e;

   b = heap[TEST111];
   d(a,b);
   a =1; b = 3;
#ifndef a
   c(a,
      b);
   /* 3,5 expected */
#endif
   e=50; heap[51]=3; heap[3]=4;
   /* 5,4 expected */
#if 0
   g(car(cadr(e)),cadr(e));
#endif
#if 0
   printf("#0054:1\n");
#elif (1)
   printf("#0056:2\n");
#elif (2)
   printf("#0058:3\n");
#else
   printf("#0060:4\n");
#endif
#if 0
   printf("#0063:1\n");
#elif (0)
   printf("#0065:2\n");
#elif (0)
   printf("#0067:3\n");
#else
   printf("#0069:4\n");
#endif
    printf("#0071:%d\n",name(3,hoge));
    printf("#0072:%d\n",names(3,hoge));
    return 0;
}

#if 0
#endif /*  whoeh
     wohefwiehfoi */
void longlong(int i,int j)
{
//   long long i,j;
   if (i>j) main();
}