Hi, The gcc implements the stdarg.h to support variable parameters functions. I wonder how it work. So, I find the stdarg.h at /usr/lib/gcc/i486-pc-linux-gnu/4.1.2/include/stdarg.h Open it , I found some definitions as follows: #define va_start(v,l) __builtin_va_start(v,l) #define va_end(v) __builtin_va_end(v) #define va_arg(v,l) __builtin_va_arg(v,l) Every macro has its __builtin_... version. I try to look for these '__builtin_...' in gcc source code, but has not found. So, I want to know how to check their source code.