目标代码文件、可执行文件和库
C编程的基本策略
用程序把源代码文件转换为可执行文件(其中包含可直接运行的机器语言代码)。
典型的C实现通过编译和链接两个步骤来完成这一过程。
编译器把源代码转换成中间代码,链接器把中间代码和其他代码合并,生成可执行文件。
中间文件把源代码转换为机器语言代码,并把结果放在目标代码文件(或简称目标文件)中(这里假设源代码只有一个文件)。虽然目标文件中包含机器语言代码,但是并不能直接运行该文件。因为目标文件中储存的是编译器翻译的源代码,这还不是一个完整的程序。
目标代码文件缺失启动代码(startup code)。
启动代码充当着程序和操作系统之间的接口。
目标代码还缺少库函数。几乎所有的C程序都要使用C标准库中的函数。库文件中有许多函数的目标代码。
链接器的作用是,把你编写的目标代码、系统的标准启动代码和库代码这3部分合并成一个文件,即可执行文件。
对于库代码,链接器只会把程序中要用到的库函数代码提取出来
#include <stdlib.h>
#include <stdio.h>
int main(void) /* main函数返回值为int*/
{
int num; /* 定义一个名为num的int变量 */
num = 1; /* 为num赋一个值 */
printf("I am a simple "); /* 使用printf()函数输出括号的内容 */
printf("computer.\n");
printf("My favorite number is %d because it is first.\n",num);//输出num的值
return 0;
system("pause");
/*system("pause"); 语句在stdlib.h头文件中,可以在任意时刻真正的暂停程序*/
}
C语言的命名规则
C99和C11允许使用更长的标识符名,但是编译器只识别前63个字符。对于外部标识符,只允许使用31个字符。可以用小写字母、大写字母、数字和下划线(_)来命名。而且,名称的第1个字符必须是字符或下划线,不能是数字
操作系统和C库经常使用以一个或两个下划线字符开始的标识符(如,_kcab),因此最好避免在自己的程序中使用这种名称。
C语言的名称区分大小写,即把一个字母的大写和小写视为两个不同的字符。因此,stars和Stars、STARS都不同
本笔记大部分基于《C Primer Plus》整理,还有一些是自己的理解
另外初学者一枚,大家多多关照,有错误可以在下面说出来
谢谢大家