内联函数的使用,该怎么处理

内联函数的使用
看书看到内联函数讲内联函数并不是真的发生函数调用,而是把内联函数代码嵌入到调用点处。所以写了一段代码测试一下。但是却发现程序最后的打印语句并没有打印将printf函数语句嵌入到main函数中的位置,而就是他本身的位置。这不就说明他没有发生嵌入吗?求大神指导

#include <cstdio>
#include <cstdlib>

inline void print()
{
printf( "%s %d %s\n" , __FILE__ , __LINE__ , __FUNCTION__ );
}

int main( void )
{
print();

return 0;
}

------解决思路----------------------
编译的第一步是预处理,其中一个任务就是宏替换,把__FILE__之类的就都替换掉了。内联的时候__LINE__已经被替换掉了,怎么联都是个常数

编译器看到的代码是这样的:

$ gcc -E test.c

# 1 "test.c"
# 1 "<command-line>"
# 1 "test.c"



inline void print()
{
    printf( "%s %d %s\n" , "test.c" , 6 , __FUNCTION__ );
}

int main( void )
{
    print();

    return 0;
}