iOS_02_第一个C语言程序(理解编译、连接、运行)
一、开发工具的选择
1、 可以用来写代码的工具:记事本、ULtraEdit、Vim、Xcode等。
2、 选择XCode的原因:苹果公司官方提供的开发利器、简化开发的工程、有高亮显示功能。
3、 使用XCode新建一个C程序的源代码文件(扩展名为.c或者.C)
# 开发XCode
# 新建文件
# 选择文件类型 .c
二、代码编写
1、程序结构
* C程序的结构:由函数组成
# 任何一个C语言程序都市有一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的。
* 函数的概念
# 函数名: 一个程序中由无数个函数组成,每个函数都有自己的名称。
# 调用(执行)函数:根据函数名酒可以调用对应的函数,执行相应的功能。
* C程序的入口
# C程序的入口是一个名字叫做main的函数,简称main函数。
# 不管整个程序中又多少个函数,都是先执行main函数。
2、编程程序
* 编写main函数(大括号{}中得内容是函数体)
#include<stdio.h>
int main()
{
printf("这是函数体"); // 输出字符串 调用系统函数
return 0;
}
三、编译
1、什么是编译:将C源程序翻译成计算能识别的0和1
2、使用什么编译器:Xcode3是用GCC,XCode4使用LLVM编译器(前端clang)
3、如果使用clang编译程序?
* 在终端中输入:CC -c 文件名.c。(cd进入当前目录下)
* 编译成功,会生成.o目标文件。
4、编译器的错误和警告功能
* 如果嗲吗有语法问题,编译器会直接报错,并指出错误的个数和具体的行号。
* 只要有1个错误,程序就不能编译成功,也不好生成.o文件。
* 警告信息只是编译的一些建议,并不影响编译通过。
四、连接
1、连接的作用:将.o文件和C语言函数库组合在一起,生成可执行文件
2、由连接器完成,clang编译器里面已经包含了连接指令。
* 终端输入:cc 文件.o。
* 连接成功,会生成a.out可执行文件。
五、运行
1、两种方式运行
* 直接双击打开a.out文件。
* 终端中使用./a.out指令。
2、修改文件内容之后,一定要重新编译、连接、再运行。
3、\n的作用:回车换行。
六、其他clang指令
1、刘改可执行文件名称:cc xx.o -o 文件名
2、一起编译、连接:cc xxx.c
七、初学者常见错误
1、不写分号、用了中文分号
2、字符串少了双引号、或者用了单引号,双引号里面又又双引号
3、代码没有写在main函数内部、return之前
4、文件扩展名不是.c 或者.C,比如.txt
5、用绝对路径编译文件,注意目标文件生成的地方。
八、总结
1、整个程序的运行过程
* 编写程序 -> 源代码-> 编译 -> 目标代码 -> 连接(c语言函数库)-> 可执行的机器代码 -> 运行
2、总结常见文件的扩展名
* .c是C语言源文件,在编写代码的时候创建
* .o是目标文件,在编译成功的时候产生。
* .out是可执行文件,在连接成功的时候产生。
3、总结clang指令
* 编译:cc -c xx.c
* 连接: cc xxx.o
* 编译、连接:cc xxx.c
* 运行可执行文件: ./a.out
* 更改可执行文件的名称:cc xxx.o -o xxx
4、开发中会遇到哪些错误?如果解决?
* 语法错误,可以通过编译器的报错信息解决
* 逻辑错误,需要内心调试程序
5、学习建议
* 学编程并不是学英文
* 程序的可读性(非常重要)
* 初学者不要过于寻根问底
九、例子
1、用二种不同的代码方式输出下面图案
************
****8888****
************
#include <stdio.h>
int main()
{
printf("************\n****8888****\n************\n");
return 0;
}
#include <stdio.h>
int main()
{
printf("************\n");
printf("****8888****\n");
printf("************\n");
return 0;
}