编写一个简单的C语言程序(编写一个简单的c语言程序,使得在屏幕上显示)

作为一名以Java为主的开发人员,深感不理解操作系统底层原理的痛苦,为了能更好掌握操作系统的相关知识点,因此我发自内心决定结合实践重学C语言这门编程语言

重学C语言的第一个步骤,我决定从这个pun.c简单的例子入手,具体代码如下:

#include <stdio.h>int main(void) { printf("To C,or not to C: that is a question.n"); return 0;}

当你读到我的文章且看到这个例子的时候,我不想让你心里抱着以为这个例子简单的心态而使你错过重要的信息以及对忽视这个例子背后所蕴藏的魅力。接下来让我来详细分析这个例子,让你更深入理解它。

一、代码解析:

1 #include<stdio.h> 表示C语言标准输入输出相关信息

2 main方法前面的int 表示main方法执行完成后返回的值的数据类型为int

3 main方法中void 表示形式参数类型无,用void关键字来表示

4 这个main方法代表的是主程序,也是C语言执行的入口

5 main方法内部信息表示的是可执行的代码内容

6 main方法中第一行是调用printf函数将目标信息打印出来,n表示目标信息输出后进行换行

7 printf函数来自标准输入输出库{<stdio.h>}中

8 第二行代码表示执行结束后向操作系统返回值为0

二、程序编译和链接

编写一个简单的C语言程序(编写一个简单的c语言程序,使得在屏幕上显示)

假设我们在Visual Studio编辑器上编写完成程序后,运行只需要按住快捷键Ctrl F5就会在显示控制台中打印printf函数中的内容。虽然这么简单的动作,但是却还要经历很多看不见的步骤才能看见对应的结果。那具体是什么步骤呢?我来详细分析一下:

1 生成一个含有上述程序代码名为pun.c的文件

2 把程序转换为机器可以执行的形式

2.1 预处理

(1)把程序移交给预处理器【preprocessor】进行处理

(2)预处理器执行以#开头的命令,预处理器可以对程序进行修改或新增一些内容

2.2 编译

(1)被预处理器修改后的程序被放到编译器【compiler】

(2)编译器会将程序编译成机器代码

2.3 链接

(1)链接器【linker】将由编译器生成的机器代码和其它附加代码整合在一起,产生最终可以执行的程序

(2)附加代码主要是程序中使用到库函数,如上述代码例子用到printf函数

3 语句

语句是程序运行时执行的命令。在pun.c文件中,用到了两种语句,分别是函数调用语句和返回语句。此外C语言要求在每个语句的末尾必须以分号结束

编写一个简单的C语言程序(编写一个简单的c语言程序,使得在屏幕上显示)

编译和链接这几个步骤往往是自动实现的,实际上,预处理器一般是和编译器集成在一起,导致我们无法肉眼看到它们在工作。在实际的开发过程中,根据编译器和操作系统的不同,编译和链接所需要的命令也许是多种多样的。在UNIXLinux操作系统中自带有cc编辑器,因此我们可以使用cc编译器对pun.c程序进行编译和链接。具体的操作如:

cc pun.c

在终端或者命令行窗口中执行cc pun.ch后,在当前的目录下,我们可以看到生成a.out文件,这个文件就是操作系统自动进行链接操作而生成的默认文件。cc编译器有许多的选项,其中一个就是-o,-o表明将cc编译器会将预编译和链接的时候可以指定生成文件的名称

编写一个简单的C语言程序(编写一个简单的c语言程序,使得在屏幕上显示)

编写一个简单的C语言程序(编写一个简单的c语言程序,使得在屏幕上显示)

gcc编译器,也可以将pun.c进行预编译和链接,生成对应.out文件,操作命令如下:

gcc pun.c

编写一个简单的C语言程序(编写一个简单的c语言程序,使得在屏幕上显示)

gcc编译器也可以通过参数-o生成指定的文件

gcc -o pun.h pun.c

编写一个简单的C语言程序(编写一个简单的c语言程序,使得在屏幕上显示)

到此为止,通过对一个简单的C语言程序的分析,让我们了解到C语言代码的简单布局和组成部分所代表的含义。此外还明白了从编写程序到执行输出目标信息所经历的步骤。

请关注我,让我们共同进步罢!

相关新闻

联系我们
联系我们
公众号
公众号
在线咨询
分享本页
返回顶部