02-C语言执行过程

目录:

一、MACOS系统操作

二、C语言的使用方式

三、编码

四、编译

五、运行

六、分析第一个C程序

七、预处理指令#include

八、完整执行过程

回到顶部

一、MACOS系统操作

操作计算机的两种方式:

图形化操作方式、命令行操作方式

命令:

ls 显示所有文件及文件夹

pwd 查看当前目录

cd 切换子目录

cd .. 返回上一级目录

clear 清屏

mkdir文件名 创建目录

touch 文件名.后缀名 创建文件

rm 删除一个文件,多个以空格隔开

练习:创建一个文件夹Test,通过图形化操作创建,通过命令创建,通过图形化找到,通过命令找到。

回到顶部

二、C语言的使用方式

1.打草稿,以文件的形式保存。->编码

2.翻译,中文->非文,以文件形式保存。->编译(0,1)

3.读,执行。->运行

回到顶部

三、编码

编码有三种方式:

1 vi命令行 系统自带

2 UItraEdit 网络下载

3 xcode 网络下载

回到顶部

四、编译

1 将C语言代码转换成计算机识别的代码,即二进制码

2 GUN C Compiler,GNU自由软件基金会的项目,C 语言,Compiler编译。

3 编译C语言

回到顶部

五、运行

运行前编译 gcc xx.c

1 运行编译后文件a.out

2 执行./a.out

回到顶部

六、分析第一个C程序

#include <stdio.h>

int main()
{
    printf("hello world");
    return 0;
}

1 预处理命令#include <stdio.h>

2 main函数,代码段,入口程序,有且只有一个

3 语句以;号结尾为一条语句,语句以上往下依次执行

4 printf(""),输出函数

5 换行

练习:1原样显示一下内容

a*****

  ***

    *

b  *

  ***

 *****

c*****   *

  ***   ***

   *   *****

#include <stdio.h>
int main(){
    printf("*****
");
    printf(" *** 
");
    printf("  *  

");

    printf("  *  
");
    printf(" *** 
");
    printf("*****

");

    printf("*****  *  
");
    printf(" ***  *** 
");
    printf("  *  *****
");
    return 0;
}

感兴趣的可以看下循环打印的方法:

#include <stdio.h>
//test1打印如下图形
//  *
// ***
//*****
void test1(newRows)
{
    int rows = newRows;
    int i;
    int j;
    for (i = 1; i <= rows; i++)
    {
        //打印空格
        for (j = 0; j < rows - i; j++)
        {
            printf(" ");
        }
        //打印*
        for (j = 0; j < 2 * (i - 1) + 1; j++)
        {
            printf("*");
        }
        //换行
        printf("
");
    }
}

//test2打印如下图形
//*****
// ***
//  *
void test2(newRows)
{
    int rows = newRows;
    int i;
    int j;
    for (i = 1; i <= rows; i++)
    {
        //打印空格
        for (j = 0; j < i - 1; j++)
        {
            printf(" ");
        }
        //打印*
        for (j = 0; j < 2 * (rows - i) + 1; j++)
        {
            printf("*");
        }
        //换行
        printf("
");
    }
}

//test3打印如下图形
//*****  *
// ***  ***
//  *  *****
void test3(newRows)
{
    int rows = newRows;
    int i;
    int j;
    for (i = 1; i <= rows; i++)
    {
        //打印空格
        for (j = 0; j < i - 1; j++)
        {
            printf(" ");
        }
        //打印*
        for (j = 0; j < 2 * (rows - i) + 1; j++)
        {
            printf("*");
        }
        //打印两个空格
        printf("  ");
        //打印*
        for (j = 0; j < 2 * (i - 1) + 1; j++)
        {
            printf("*");
        }
        //换行
        printf("
");
    }

}
int main()
{
    int newRows = 5;
    test1(newRows);
    test2(newRows);
    test3(newRows);
    return 0;
}
View Code

2 输出个人信息,姓名:年龄:性别:期望薪资:

#include <stdio.h>
int main(){
    printf("姓名:y
");
    printf("年龄:1
");
    printf("性别:男
");
    printf("期望薪资:6000
");
    return 0;
}

3 模拟登陆信息

========

系统登陆

用户名:y

密码:***

========

#include <stdio.h>
int main(){
    printf("=========
");
    printf("系统登陆
");
    printf("用户名:y
");
    printf("密码:***
");
    printf("=========
");
    return 0;
}

回到顶部

七、预处理指令#include

1 在编译之前做的事情

2 相当于复制操作,不推荐在一个文件中好汉另一个文件在

3 加载系统提供的标准函数库

#include <stdio.h>

standard input output (printf)

4 gcc –E *.c 查看编译之前的文件内容

5 在使用#include指令时有两种方式,

#include <> 系统提供的文件放在这里,可以在usr/include中找到相应文件。

#include “” 自己写的文件放在这里,先找当前文件下,在去查C函数库的文件。

回到顶部

八、完整执行过程

1 语句可以分开放在任意位置(多文件)

2 代码预处理,解决所有指定(#include)

3 编译源代码,每个源文件都会生成一个目标文件.o文件,如果程序只有一个源文件,默认忽略这一步。gcc –c x.c 生成目标文件。

4 链接,讲多个目标文件合成一个可执行文件,如:gcc x1.o x2.o

5 加载a.out执行程序到内存中

6 cpu去内存执行代码

原文地址:https://www.cnblogs.com/yangmx/p/3458576.html