第一个C程序代码分析

一、代码分析

  1.打开项目中的main.c文件(C程序的源文件拓展名为.c),可以发现它是第一个C程序中的唯一一个源文件,代码如下:

#include <stdio.h>

int main(int argc, const char * argv[])
{

    // insert code here...
    printf("Hello, World!\n");
    return 0;
}

  2.#include <stdio.h>

    (1)#include 是C语言的预处理指令之一,所谓预处理,就是在编译之前做的处理,预处理指令一般以 # 开头

    (2)#include 指令后面会跟着一个文件名,预处理器发现 #include 指令后,就会根据文件名去查找文件,并把这个文件的内容包含到当前文件中。被包含文件中的文本将替换源文件中的 #include 指令,就像你把被包含文件中的全部内容拷贝到这个 #include 指令所在的位置一样

    (3)如果被包含的文件拓展名为.h,我们称之为"头文件"(Header File),头文件可以用来声明函数("函数"就是面向对象中的"方法"),要想使用这些函数,就必须先用 #include 指令包含函数所在的头文件

    (4)#include 指令不仅仅限于.h头文件,可以包含任何编译器能识别的C/C++代码文件,包括.c,.hpp,.cpp等,甚至.txt,.abc等等都可以,也就是说你完全可以将第3行到第9行的代码放到其他文件中,然后用 #include 指令包含进来,比如:

      a)将第3行到第9行的代码放到my.txt中

      

      b)在main.c源文件中包含my.txt文件

      

      程序还是可以照常运行的,因为 #include 的功能就是将文件内容完全拷贝到 #include 指令所在的位置

      注意:不过你可能会疑惑,为什么stdio.h用尖括号<>,而my.txt用双引号"" ?这个很好区别,如果是系统自带的文件,最好用<>;如果是开发人员自己创建的文件,最好用""

      说明:这里用txt文件纯属演示,平时做项目不会这样做,除非吃饱了撑着,才会把代码都写到txt中去

  3.main函数

    (1)前面也已经提到,C中的函数就是面向对象中的"方法"。C语言是一门面向过程的语言,是以过程为中心的编程思想,就是先分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用函数就可以了

    (2)一个C程序中一定会有一个main函数,也只能有一个main函数。main函数是整个C程序的入口。main.c的第3行代码就定义了一个main函数。

    (3)main函数的返回值为int类型,接收2个参数,其实可以不写参数

    (4)main函数可以简化成这样:

main()
{
    // insert code here...
    printf("Hello, World!\n");
    return 0;
}

    注意:这里的main函数没有写返回值类型,并不代表函数没有返回值,而是表示返回值类型为int类型,void才代表函数没有返回值

    (5)由于C语言的语法限制不严格,我们还可以进一步简化main函数:

main()
{
    // insert code here...
    printf("Hello, World!\n");
}

    注意:虽然它要求main函数返回int类型的值,但我们可以不返回

  4.stdio.h

    (1)stdio.h 是C语言函数库中的一个头文件,里面定义了一些标准输入输出函数。在main.c的第1行代码中,用#include指令包含了stdio.h

文件。

    (2)这里之所以包含 stdio.h 文件,是因为在第7行中用到了在 stdio.h 内部声明的printf函数,这个函数可以向标准输出设备(比如显示器屏幕)输出数据,屏幕上输出的文字就是第7行代码printf("Hello, World!\n");造成的,双引号""内的文本为C语言的字符串

二、开发和运行C程序的步骤

  步骤图如下:

  

  1.编写程序

  C语言源文件的扩展名为".c",源程序(代码)以ASCII码形式存储于源文件,不能直接被计算机执行,因为计算机只能识别二进制指令,也就是0和1

  2.编译(VC环境下)

    (1)把C的源程序(代码)翻译成计算机可以识别的二进制形式的目标代码文件,这个过程称为编译,由C的编译器完成

    (2)在编译的同时,还对源程序的语法等进行检查。若出现语法错误,则编译失败。如果编译成功则生成目标文件,目标文件名跟源程序文件名一样,扩展名为".obj"。比如,mj.c编译后生成目标文件mj.obj

    (3)每个源文件是单独进行编译的,假如一个项目中有多个.c源文件,编译成功会生成多个对应的.obj目标。一般情况下,目标文件之间是有关联的,比如 a.obj 可能会调用 b.obj 中定义的一个函数,因此它们都不能够单独被计算机执行,而且目标文件中并不包含程序运行所需要的库函数等

  3.链接(VC环境下)

    (1)将所有有关联的obj目标文件,以及系统提供的C库函数等组合在一起生成可执行文件的过程,称为"链接"    

    (2)链接生成的可执行文件的文件名跟源程序文件同名,扩展名为".exe",计算机可以直接执行

  4.运行

    (1)如果是在Windows环境下,直接双击".exe"文件即可运行C语言程序

    (2)由于我们的第一个C程序,是在Mac OS X系统环境下用Xcode创建的命令行项目,Mac OS X系统是基于UNIX系统的,因此生成的可执行文件的这样的:

     

    双击可以用终端(命令行)打开:

    

三、总结

  说了这么多,总结一下第一个C程序的运行步骤:

  

  1.在编译前先执行#include指令,拷贝stdio.h的内容到源程序中

  2.编译源程序,生成目标文件

  3.链接C语言函数库,生成可执行文件

  4.运行可执行文件,在屏幕上输出"Hello, World!"

  看起来好像挺多步骤的、挺麻烦的,但是当我们点击Xcode的运行按钮时,Xcode会自动按顺序执行上面4个步骤

时间: 2024-10-06 00:29:46

第一个C程序代码分析的相关文章

学习笔记之03-第一个C程序代码分析

一.代码分析 打开项目中的main.c文件(C程序的源文件拓展名为.c),可以发现它是第一个C程序中的唯一一个源文件,代码如下: 1 #include <stdio.h> 2 3 int main(int argc, const char * argv[]) { 4 // insert code here... 5 printf("Hello, World!\n"); 6 return 0; 7 } 1.#include <stdio.h> #include 是

【C语言】03-第一个C程序代码分析

前面我们已经创建了一个C程序,接下来分析一下里面的代码. 项目结构如下: 一.代码分析 打开项目中的main.c文件(C程序的源文件拓展名为.c),可以发现它是第一个C程序中的唯一一个源文件,代码如下: 1 #include <stdio.h> 2 3 int main(int argc, const char * argv[]) 4 { 5 6 // insert code here... 7 printf("Hello, World!\n"); 8 return 0;

C语言 03-第一个C程序代码分析

本文目录 一.代码分析 二.开发和运行C程序的步骤 三.总结 说明:这个C语言专题,是学习iOS开发的前奏.也为了让有面向对象语言开发经验的程序员,能够快速上手C语言.如果你还没有编程经验,或者对C语言.iOS开发不感兴趣,请忽略. 在上一篇中我们已经创建了一个C程序,接下来分析一下里面的代码. 项目结构如下: 一.代码分析 打开项目中的main.c文件(C程序的源文件拓展名为.c),可以发现它是第一个C程序中的唯一一个源文件,代码如下: 1 #include <stdio.h> 2 3 in

cocos2D(三)---- 第一cocos2d的程序代码分析

在第一讲中已经新建了第一个cocos2d程序,执行效果例如以下: 在这讲中我们来分析下里面的代码,了解cocos2d的工作原理,看看屏幕上的这个"Hello World"是怎样显示出来的. 这是HelloWorld项目的代码结构: 以下,我们開始分析项目中的这些源文件: 从程序的入口点開始 这么多源文件在这里,到底先看哪个呢?有些人可能会先挑内容少的来看,认为这样就能够轻松解决掉一个源文件了.事实上这是不正确的,这样看起来更加是一头雾水,根本搞不清楚每一个源文件之间的联系.正确的做法应

第一个javascript程序代码

<!DOCTYPE HTML> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>热身</title> </head> <body> <p id="p1">我是第一段文字</p> <p id=

一个利用静态代码分析检查并记录开源项目中存在的隐患的网站

www.viva64.com/en/examples/ 他山之石可以攻玉.不仅可以看看都有哪些常见的地雷,还可以练练英文.

第一个JAVA程序解析

上一篇博客中,我们编写了第一个JAVA程序并使用最原始的方式对其进行编译运行,很多文章或书籍中对该种编译运行方式不做介绍,但是我认为这有助于我们更好的了解.学习JAVA,是不可忽略的一部分,在我身边有很多人,学完一段时间JAVA后,只知道如何在IDE中进行开发,却不知脱离IDE后该如何运行,不得不说这也是一种悲哀. 言归正传,我们来看一下上一篇博客中的例子"Hello World",这也是几乎所有的编程语言都会编写的一个例子,非常的经典. 下面我们就来分析一下: /**  *  我的第

20155209林虹宇Exp4 恶意代码分析

Exp4 恶意代码分析 系统运行监控 使用schtasks指令监控系统运行 新建一个txt文件,然后将txt文件另存为一个bat格式文件 在bat格式文件里输入以下信息 然后使用管理员权限打开cmd,输入schtasks /create /TN netstat /sc MINUTE /MO 2 /TR "c:\netstatlog.bat" 建立一个每两分钟记录计算机联网情况的任务,进入控制面板任务计划里查看一下. 查看一下txt文件里面的信息 安装配置sysinternals里的sy

Servlet&amp;JSP学习笔记:第一个Servlet程序

第一个Servlet程序代码如下,接着根据这个小程序逐步讲解. import java.io.IOException; import java.io.PrintWriter; import javax.servlet.ServletException; import javax.servlet.annotation.WebServlet; import javax.servlet.http.HttpServlet; import javax.servlet.http.HttpServletReq