//foo.h
#define X TEST-9
#define TEST 10
//foo.c
#include<stdio.h>
#include"foo.h"
int main(void)
{
int a = X;
printf("%d\n", a);
}
when I run :
gcc -o foo foo.c -Wall -Wextra
there is no outout,then run:
./foo
result is: 1
my queston is:
X references TEST,but TEST is defined after X,why can X expansion correctly