C语言第一章:为什么要学习C语言

第一节:C语言基本知识了解

首先了解一下语言的分类:

  • 机器语言,就是0和1组成的语言
  • 汇编语言,通过ADD,AX,BX等指令运算的语言
  • 高级语言:结构化语言->C语言,面向对象语言->C++,Java等

C语言的发展过程:

  • C语言的产生是由贝尔实验室,为了改造Unix系统而产生的,由于当时用B语言开发的,有许多漏洞,所以发明了C语言
  • 1983年,美国标准委员会对C语言制定了ANSI C标准
  • 1987年,美国标准委员会对C语言制定了ANSI C87标准
  • 1999年,美国标准委员会对C语言制定了ANSI C99标准

C语言的特点:

  • 优点:代码执行速度快,功能强大
  • 缺点:开发周期长,不安全

C语言的32个关键字:

auto break case char
const continue default do
double else enum extern
float for goto if
int  long register return
short signed sizeof static
struct switch typedef unsigned
union void volatile while

 

 

 

 

 

 

 

 

第二节:C语言HelloWorld

C语言的基本格式:

# include<stdio.h>

int main(void)
{
 printf("Hello,World");
return 0; }

HelloWorld程序分析:

  • # include <stdio.h> 含义是导入函数库,该库的全称为Standard Input Output ,中文含义为标准输入输出。只有在导入了该函数库以后,我们才能在函数中调用一些其已经封装好的函数。
  • int main(void) 是主函数,是程序执行的入口。主函数必须要有返回值,这里一般使用0来表示函数执行成功,-1表示函数执行失败。
  • printf("HelloWorld"); 是调用了stdio.h中的打印函数,向输出设备打印字符串"HelloWorld",要调用该打印函数必须要引入头文件。

C语言编译过程详解:

C语言的编译过程可以分为如下几个步骤:

源文件Hello.c-->预编译-->编译-->汇编-->链接-->可执行文件Hello.exe

下面我们来详细介绍每一个过程:

  1. 编写Hello.c文件。
  2. 预编译过程

    预编译过程会将源文件中的#include引入的库进行解析替换,将被包含的文件插入到该预编译的位置。将注释信息全部消除掉。

    gcc -E Hello.c -o Hello.i
    /*
        gcc -E 是预编译命令,
        - Hello.c 是要预编译的文件, 
        -o Hello.i 是将预编译好的文件输出为 Hello.i
    */ 
  3. 编译过程

    编译是将预编译文件编译成汇编语言的过程。此时的打开的文件是用汇编语言写的。

    gcc -S Hello.i -o Hello.s
    /*
        gcc -S 是编译命令
        Hello.i 是要进行编译的预编译文件
        -o Hello.s 是将编译好的文件输出为Hello.s
    */
  4. 汇编过程

    汇编是将汇编代码转换为机器代码的过程。此时编译好的汇编语言文件会变成机器代码。

  5. gcc -c Hello.s -o Hello.o
    /*
        gcc -c 是汇编命令
        Hello.s 是要进行汇编的汇编语言代码文件
        -o Hello.o 是将处理好的机器代码文件输出为Hello.o
    */
  6. 链接过程

    链接分为静态链接和动态链接,静态链接是将静态库直接添加到可执行文件中去,这样会导致可执行文件过大,而动态链接是指在链接阶段,只添加一些描述信息,在可执行文件运行的过程中再动态的把库添加到内存中。

    gcc Hello.o -o Hello
    /*
        gcc 是链接命令
        Hello.o 是要进行链接的机器码文件
        -o Hello 输出要可执行文件
    */

     

第三节:System函数使用

system是stdlib库中函数(stdlib的含义是standard library,即标准库的意思),该函数可以调用执行一些系统命令。如下程序功能就是打开记事本软件。

# include <stdlib.h>

int main(void)
{
    system("notepad");
    return 100;
}

我们将上面程序所生成的可执行程序记为s1,。我们在下面的程序中调用该程序,来进一步观看主函数的返回值效果。

# include <stdio.h>
# include <stdlib.h>

int main(void)
{
    int i = system("s1");
    printf("%d", i);
    return 0;
}

此时程序执行完毕后,会弹出记事本程序,当我们关闭记事本程序之后,会在控制台打印100,因为在s1程序中的主函数返回值是100。

posted @ 2016-10-23 11:17  MetalSteel  阅读(325)  评论(0编辑  收藏  举报