黑马程序员技术交流社区
标题:
C基础终端编写运行C程序个人笔记 仅供交流
[打印本页]
作者:
muyan091115
时间:
2016-5-22 23:12
标题:
C基础终端编写运行C程序个人笔记 仅供交流
1,高级语言的一般的编写执行步骤
1),使用人类的英文单词编写代码, 英文单词
2),编译器将源代码编译成CPU可以识别的二进制指令
3),将二进制指令交给CPU去执行。
2,软件开发:就是写上一堆CPU可以识别的(编译器翻译)指令,CPU按照指令
执行就完成我们要他完成的任务,想要计算机做什么事情
就写上这个事情的指令,把这个指令交给CPU去识别。
3,C语言:1972年的贝尔实验室 ATT公司 开源的 有不同的标准 K&R标准 C89 C99
C程序的编译器有很多,苹果的编译器为LLVM
同样的代码在Windows下运行可能运行不了 因为编译器不一样
1,终端程序的使用
1),类似于Windows 命令提示符cmd
2),用来执行一些程序和命令的。
有一些程序是没有界面的,必须要依赖于终端程序才能运行
例如:ping程序是用来检查两台电脑之间的网络连通性,而这个程序只能运行在终端之下
2,终端程序的使用
jiangweideMac-Pro:~ muyan$
电脑名称:工作路径 系统登录用户名$
工作路径:代表终端程序在哪一个工作路径下工作
~代表当前用户的家目录 ~muyan = /User/muyan
3, 常用命令
pwd:显示当前终端程序的工作路径
ls:显示当前工作路径下的文件以及文件夹的信息
ls -l:显示当前工作路径下的文件以及文件夹的详细信息
4, 如果想要显示别的文件夹下的文件和文件夹的信息呢
ls:显示当前 这个时候就改变终端程序的工作路径就可以了
比如:当前终端的工作路径是家目录,如果我要显示/Libary目录下的文件以及文件夹信息
那么这个时候 先把终端的工作路径变换为/Library ,然后再使用ls命令
如何改变终端的工作路径呢?
cd 要切换的工作路径
5, 在指定的目录下创建一个空文件
touch 要创建的文件的名称
就会在终端程序的工作路径下新建一个文件
如果我们要在指定的目录下创建一个空文件
a,先改变终端的工作路径为指定的目录
(可将文件夹拖拽至终端 可节约输入复杂路径的时间)
b,使用touch指令来创建一个文件
1,一般高级语言编写执行步骤
a,编写代码,使用英文单词编写符合语法规范的代码
b,使用编译器,将代码编译为CPU可以识别的二进制指令
c,将二进制指令交给CPU去执行
2,C语言的编写执行步骤
1),先写代码,先按照我们的C标准规范来编写代码。
要指挥计算机做事情的对应的代码该怎么写?
既然是英文单词 符号按照C的语法规范组合起来,应该写在一个文件中
2),所以,我们首先应该新建一个文件,在这个文件中写上符合C标准的代码
这个文件的后缀一定要是 .c
创建一个后缀为 .c的文件,然后再这个文件中写上符合C语法规范的源代码
.c文件就是C程序的源文件。
在写代码的时候一定要注意几点:
a,C语言的代码严格区分大小写;
b,除了双引号之间的内容,其他地方的代码都必须要使用纯英文的输入法来输入。
3),使用编译器,将原文件中的代码转换为CPU可以识别并执行的二进制指令
a,编译器:将C代码转换成二进制代码,编译器本身也是一个软件,需要安装LLVM。
如果已经安装了Xcode 编译器自动就安装好了
如果还没有安装Xcode 编译器很可能没有安装
如何确定是否安装了编译器呢?
打开终端输入CC
b,当确定编译器安装好了以后 ,那么接下俩就是使用编译器将C代码转换为二进制指令
->先切换终端的工作路径为C源代码所在的路径
->cc -c C原文件的名称(包括后缀名后)
->在一切正常的情况下,会生成一个XXX。o的文件
这个文件叫做目标文件,内容就是对应的二进制指令。
而这个目标文件还不能直接执行,无法交给CPU去执行
因为一个可以背CPU执行的程序 必须要有启动代码
而这个目标文件中只有。c文件的二进制指令 没有启动代码 所以无法执行
注意:
编译器在变异的时候,不是直接将C代码转换为二进制指令
而是先检查文件中C代码石佛欧符合C语言的语法规范,如果符合才会编译并生成。o文件
如果不符合会提示错误,不会生成。o文件
如果代码在编译的时候 出现了error 说明你的代码错了
4),链接
经过编译的目标文件,无法直接交给CPU识别并执行
链接:就是为目标文件添加启动代码,好让我们的程序可以背CPU识别并执行
命令:cc 目标文件名
如果一切正常的话,就回生成一个a。out文件 这个文件就是我们最终编写的可执行程序
它新增了启动代码,所以它可以直接交给CPU去执行。
5),如何执行a.out
命令:./a.out
\n 为换行
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2