1. 程序的编译与链接
平时我们写的都是后缀为.c的文件,经过编译后生成目标文件(.obj),最后通过链接后生成可执行程序(.exe)
源文件 ——> 编译 ——> 链接 ——> 可执行程序
而编译部分又包括: 预处理、编译、汇编
预处理:头文件的包含、#define定义符号的替换、注释的删除
编译:把C语言代码翻译成汇编代码
汇编:把汇编指令翻译成二进制指令
2. 预定义符号
__FILE__
__LINE__
__DATE__
__TIME__
__STDC__//进行编译的源文件
//文件当前的行号
//文件被编译的日期
//文件被编译的时间
//如果编译器遵循ANSI C,其值为1,否则未定义
int main()
{
printf("%s\n", __FILE__);//进行编译的源文件
printf("%ld\n", __LINE__); //文件当前的行号
printf("%s\n", __DATE__); //文件被编译的日期
printf("%s\n", __TIME__); //文件被编译的时间
printf("%d\n", __STDC__); //如果编译器遵循ANSI C,其值为1,否则未定义
return 0;
}

本文介绍了C语言程序的编译过程,包括预处理、编译和链接阶段。预处理涉及头文件包含、#define符号替换和注释删除。接着讨论了#define用于定义标识符和宏,比较了宏与函数的异同,如执行速度、参数限制、调试便利性和代码复用。最后,讲解了条件编译的概念,用于根据特定条件选择性地编译代码块。
最低0.47元/天 解锁文章
722

被折叠的 条评论
为什么被折叠?



