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");
;
}
#include <stdio.h>
int main()
{
printf("************\n");
printf("****8888****\n");
printf("************\n");
;
}
iOS_02_第一个C语言程序(理解编译、连接、运行)的更多相关文章
- 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】02-第一个C语言程序
前言 前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法.学习任何一门语言,首先要掌握的肯定是语法.学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算 ...
- 【做中学】第一个 Go 语言程序:漫画下载器
原文地址: 第一个 Go 语言程序:漫画下载器: https://schaepher.github.io/2020/04/11/golang-first-comic-downloader 之前学了点 ...
- 00 你的第一个C语言程序
C语言简介 C 语言是一种通用的.面向过程式的计算机程序设计语言,即编程语言. 为移植和开发 UNIX 操作系统,丹尼斯·里奇于1972年在贝尔电话实验室设计开发了 C 语言的第一个版本. C 语言同 ...
- 第一个C语言程序
从第一个C语言程序了解C语言 了解关键字 了解函数 注释 C语言的执行流程 标识符 C语言的学习重难点 从第一个C语言程序了解C语言 上图是一个在控制台上显示“Hello, World!”的C语言源代 ...
- C语言学习-01第一个C语言程序
一 C语言的历史 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供 ...
- C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序
在C语言入门系列中,我们使用Visual studio 2013 Professional作为开发工具.本篇详细介绍如何安装Visualstudio 2013 Professional并写出我们第一个 ...
- 如何把一个c语言程序做成windows服务开机自启动
原文:如何把一个c语言程序做成windows服务开机自启动 目前写的程序是一个用c语言实现socket侦听的,那么如何把这个程序做成开机自启动呢? 我们是通过vs6.0,编译后生成了.exe文件,然后 ...
- Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序
Android For JNI(一)--JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序 当你的Android之旅一步步的深入的时候,你其实会发现,很多东西都必须去和framew ...
- 我的第一个C语言程序
从自学开始到现在应该有块一个月了,之前一直想要写博客一直没想好要自己建博客还是找平台来写.现在想想 其实都一样,不论在哪里,都可以记录自己学习的成长记录.这是我的第一篇关于C语言学习的博客,希望这只是 ...
随机推荐
- JQ each 各种标签
类选择器: $("input[class=class1]").each(function(){ alert($(this).val()); }); ID选择器: $("i ...
- 洛谷 P3670 [USACO17OPEN]Bovine Genomics S奶牛基因组(银)
P3670 [USACO17OPEN]Bovine Genomics S奶牛基因组(银) 题目描述 Farmer John owns NN cows with spots and NN cows wi ...
- 11.2.0.1升级到11.2.0.4报错之中的一个:UtilSession failed: Patch 9413827
UtilSession failed: Patch 9413827 requires component(s) that are not installed in OracleHome. These ...
- HDU - 2254 奥运 (求等比数列和)
Description 北京迎来了第一个奥运会,我们的欢呼声响彻中国大地,所以今年的奥运金牌 day day up! 比尔盖兹坐上鸟巢里,手里摇着小纸扇,看的不亦乐乎,被俺们健儿的顽强拼搏的精神深深的 ...
- 带你彻彻底底弄懂Scroller
Scroller的使用 这是一个滑动帮助类.并不能够使View真正的滑动,而是依据时间的流逝.获取插值器中的数据.传递给我们.让我们去配合scrollTo/scrollBy去让view产生缓慢滑动,产 ...
- Can not find a java.io.InputStream with the name [downloadFile] in the invocation stack.
1.错误描写叙述 八月 14, 2015 4:22:45 下午 com.opensymphony.xwork2.util.logging.jdk.JdkLogger error 严重: Excepti ...
- php实现简单算法3
php实现简单算法3 这篇文章主要介绍了PHP经典算法集锦,整理了各种常见的算法,包括排序.查找.遍历.运算等各种常见算法原理与实现技巧,需要的朋友可以参考下 1.首先来画个菱形玩玩,很多人学C时在书 ...
- SQL 金额添加千分位
SELECT CONVERT(NVARCHAR(50),CAST(1000000 AS MONEY),1) SELECT CONVERT(NVARCHAR,CAST(1343432432434.8 A ...
- Gym 100952 D. Time to go back
http://codeforces.com/gym/100952/problem/D D. Time to go back time limit per test 1 second memory li ...
- GCC中-fpic解惑(转载)
参考: 1.<3.18 Options for Code Generation Conventions>2.<Options for Linking>3.<GCC -fP ...