博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
黑马程序员-- C语言执行过程及注意点
阅读量:5811 次
发布时间:2019-06-18

本文共 2573 字,大约阅读时间需要 8 分钟。

通过对程序的逐步执行,了解C语言程序执行过程:

1.编写源文件即.c文件。

#include <stdio.h>

void play()

{

    printf("hello world!\n");

}

int main()

{

    play();

    return 0;

}

2.编译.c文件,使用命令:cc -c 文件名.c

lymdeMacBook-Pro:代码 lym$ pwd

/Users/lym/Desktop/20140502/代码

lymdeMacBook-Pro:代码 lym$ ls -l

total 16

-rw-r--r--@ 1 lym  staff  106  5  2 19:20 01-第一个C语言程序.c

-rw-r--r--@ 1 lym  staff  137  5  2 19:46 02-第二个C语言程序.c

lymdeMacBook-Pro:代码 lym$ cc -c 01-第一个C语言程序.c 

lymdeMacBook-Pro:代码 lym$ ls -l

total 24

-rw-r--r--@ 1 lym  staff  106  5  2 19:20 01-第一个C语言程序.c

-rw-r--r--  1 lym  staff  984  5  4 14:17 01-第一个C语言程序.o

-rw-r--r--@ 1 lym  staff  137  5  2 19:46 02-第二个C语言程序.c

lymdeMacBook-Pro:代码 lym$

3.链接:将编译生成的.o文件与C语言函数库相结合生成可执行文件的过程。使用命令:cc 文件名.o进行链接。

lymdeMacBook-Pro:代码 lym$ ls -l

total 24

-rw-r--r--@ 1 lym  staff  106  5  2 19:20 01-第一个C语言程序.c

-rw-r--r--  1 lym  staff  984  5  4 14:17 01-第一个C语言程序.o

-rw-r--r--@ 1 lym  staff  137  5  2 19:46 02-第二个C语言程序.c

lymdeMacBook-Pro:代码 lym$ cc 01-第一个C语言程序.o

lymdeMacBook-Pro:代码 lym$ ls -l

total 48

-rw-r--r--@ 1 lym  staff   106  5  2 19:20 01-第一个C语言程序.c

-rw-r--r--  1 lym  staff   984  5  4 14:17 01-第一个C语言程序.o

-rw-r--r--@ 1 lym  staff   137  5  2 19:46 02-第二个C语言程序.c

-rwxr-xr-x  1 lym  staff  8528  5  4 14:19 a.out

lymdeMacBook-Pro:代码 lym$

4.运行,也就是执行可执行文件.out。由于.out是可执行文件,所以有两种可以程序结果的方式

   方式一:双击.out文件。

   方式二:进入.out文件所在目录,使用命令:./可执行文件名称.out。其中./表示当前路径

   lymdeMacBook-Pro:代码 lym$ ls -l

 total 48

  -rw-r--r--@ 1 lym  staff   106  5  2 19:20 01-第一个C语言程序.c

  -rw-r--r--  1 lym  staff   984  5  4 14:17 01-第一个C语言程序.o

  -rw-r--r--@ 1 lym  staff   137  5  2 19:46 02-第二个C语言程序.c

  -rwxr-xr-x  1 lym  staff  8528  5  4 14:19 a.out

  lymdeMacBook-Pro:代码 lym$ ./a.out 

  hello world!

  lymdeMacBook-Pro:代码 lym$ 

注意:1.c文件是C语言源文件,在编写代码时生成;.o文件是C语言目标文件,在编译成功时产生;.out是可执行文件,在链接成功时产生。

        2.总结上边所使用的clang指令:

      编译: cc -c xxx.c

      链接: cc xxx.o

      编译链接:cc xxx.c

      运行可执行文件:./a.out

      更改可执行文件名称:cc xxx.c -o xxxx或者cc xxx.o  -o xxxx

    3.没有main函数,可以编译过去,但不能执行成功;main函数也不能重复定义,编译不通过。

  4.上面编译和链接可以使用指令一次完成:cc 文件名.c , 而且一次完成生成的可执行文件可以如下使用:

    cc 文件名 .c  -o test。执行的时候用  “./ test”。test就代表可执行文件

  5. 通过指令:cc 文件名.o  -o  test也可以给生成的重命名为test的可执行文件。

      6.文件名中不要加入空格,如果实在要用空格,使用tab,在终端显示成”\ ”。

  7. cc -c 可以一起编译多个文件,例如:

        cc  -c  01.c  02.c  03.c,注意文件名之间用空格分隔。

  8.由于printf是C语言函数库自带的函数,所以程序中使用它时,通过#include <stdio.h> 导入printf所在的

     文件,printf用于向终端输出信息。不导入stdio.h文件,程序也可以编译运行,但会有警告。为了避免出错,最好导入。

  9.字符串要用双引号括起来,不要用单引号,更不要双引号中加入双引号。

  10.只有语句中才用分号。

  11.除“”中的内容,其余都要使用英文字符,包括大小括号, 逗号,分号等。

  12.如果不去.c文件目录下编译,那么在哪个目录下输入编译指令,.o文件就会在哪个目录下生成。

          也就是用绝对路径编译文件,注意目标文件的生成地方。

  13.换行符是“\n”不是“/n”。

  14.程序出现语法错误通过编译器报出错误信息解决;

       程序出现逻辑错误通过耐心调试程序解决。

  15.文件拓展名要使用.c或.C,不要使用.txt。

转载于:https://www.cnblogs.com/liu-yuan-ming/p/3706712.html

你可能感兴趣的文章
ndk制作so库,ndk-build不是内部或外部命令。。。的错误
查看>>
Spring Cloud 微服务分布式链路跟踪 Sleuth 与 Zipkin
查看>>
ORM数据库框架 SQLite 常用数据库框架比较 MD
查看>>
STL_算法_依据第n个元素排序(nth_element)
查看>>
BNU 34990 Justice String (hash+二分求LCP)
查看>>
华为OJ 名字美丽度
查看>>
Android 带清除功能的输入框控件EditTextWithDel
查看>>
微信公众号与APP微信第三方登录账号打通
查看>>
onchange()事件的应用
查看>>
PowerPoint 2010 设置演讲者模式
查看>>
net 和Mono 构建的HTTP服务框架
查看>>
Windows 下最佳的 C++ 开发的 IDE 是什么?
查看>>
软件工程师成长为架构师必备的十项技能
查看>>
python 异常
查看>>
百度账号注销
查看>>
jquery画图插件jPainter
查看>>
真正努力的人,从来不焦虑
查看>>
Lua语言特色
查看>>
vscode忽略node_module
查看>>
C#泛型-什么是泛型
查看>>