Skip to content
On this page

clang_预处理过程


标签:clang/basic  

预编译 Prepressing

.c文件转换到 .i 文件 :

  • 将所有的 #define删除 , 并展开所有的 宏定义 ;
  • 处理所有的条件预编译指令 , 比如 #if, #ifdef, #elif, #else, #endif;
  • 处理 #include 预编译指令 , 将包含的文件插入到这个位置 , 这个过程是递归的 ;
  • 删除所有的 //, /* */;
  • 添加行号和文件标志 , 比如#2 "hello.c"2, 便于编译器调试和报错提醒 ;
  • 保留所有的 #pragma的编译器指令 , 因为编译器需要使用它们 ;

Last updated: