初识C语言
C语言是开发iOS软件的基础。
一、C语言简介
1. 简史
1) C语言于1972年发明,首次使用是用于重写UINX操作系统(UNIX以前主要是用汇编语言写的,它奠定了操作系统的基础);
2) 随着UNIX操作系统的成功,C语言也得到了大幅度地推广,被先后使用到大、中、小、微型主机上,至今还是世界上最流行、使用最广泛的高级程序设计语言之一;
3) C语言是一门面向过程的语言,非面向对象的语言(oc,c++,java是面向对象语言)。
2. 特点
1) 丰富的运算符
2) 丰富的数据类型
3) 可以直接操作硬件
4) 高效的目标代码
5) 可移植性好
3. 主要用途
- 编写系统软件、图形处理、单片机程序、嵌入式系统开发
- 编写游戏外挂
- 编写android程序
- 编写iOS程序
二、代码的编写
1. 程序结构
1) C程序的结构:由函数组成
任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的
2) 函数的基本概念
- 函数名:一个程序中由无数个函数组成,每个函数都有自己的名称
- 调用(执行)函数:根据函数名就可以调用对应的函数,执行相应的功能
3) C程序的入口
- C程序的入口是一个名字叫做main的函数,简称main函数
- 不管整个程序中有多少个函数,都是先执行main函数
- 程序中只能有一个main函数
2. 编写程序
1) 编写main函数(大括号{ }中的内容是函数体)
int main()
int main()
{
return 0;
}
2) 编写多个函数,并且进行调用
// Created by ZhangHua
#include <stdio.h>
int sum(int a,int b)
{
return a+b;
}
int main()
{
int c=sum(21,30);
printf("%d\n",c);
return 0;
}
3) 使用printf函数输出内容到屏幕上
#include <stdio.h>
int main()
{
printf("Hello World!");
return 0;
}
使用printf的时候,要在程序开始地方加上文件包含预处理指令#include <stdio.h>,来使用系统自带的printf函数
三、 编译
1) 将C源程序翻译成计算机能识别的0和1就叫编译
2) 常见编译器:GCC, LLVM ,Clang
3) 如何使用clang编译器编译程序?
- 在终端中输入:cc –c 文件名.c
- 编译成功后会生成一个.o目标文件
4) 编译器的错误和警告功能
- 如果代码有语法问题,编译器会直接报错。并指出错误的个数和具体行号;
- 只要有1个错误,程序就不能编译成功,也不会生成.o文件;
- 警告信息只是编译器的一些建议,并不影响编译通过。
四、链接
1) 链接的作用:将.o文件和C语言函数库组合在一起,生成可执行文件
2) 由链接器完成,clang编译器里面已经包含了链接指令
- 在终端中输入:cc 文件名.o
- 链接成功,会生成a.out可执行文件
整个过程如下图所示:

五、 容易出错的地方
- 不写分号、用了中文分号
- 字符串少了双引号、或者用了单引号,双引号里面又有双引号
- 代码没有写在main函数内部、return之前
- 文件拓展名不是.c或者.C,比如.txt
- 用绝对路径编译文件,注意目标文件生成的地方
初识C语言的更多相关文章
- 初识 go 语言:方法,接口及并发
目录 方法,接口及并发 方法 接口 并发 信道 结束语 前言: go语言的第四篇文章,主要讲述go语言中的方法,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示例,可直接运行. 方法,接 ...
- 初识 go 语言:数据类型
目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...
- 初识 go 语言:语法
目录 语法 for 循环 if 语句 switch 语句 defer 语句 defer 栈 结束 前言: go语言系列第二篇,主要讲述go语言的语法,如循环,if判断,swich语句,defer语句, ...
- 初识 go 语言
目录 go简介 安装 hello world 函数 变量 常量 可见性规则 结束 前言: 最近组内要试水区块链,初步方案定为使用fabirc来弄,而fabric的智能合约就是用go写的,借此机会正好学 ...
- 《Go并发编程实战》读书笔记-初识Go语言
<Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...
- 第二百五十八节,Tornado框架-逻辑处理get()方法和post()方法,初识模板语言
Tornado框架-逻辑处理get()方法和post()方法,初识模板语言 Tornado框架,逻辑处理里的get()方法,和post()方法 get()方法,处理get方式的请求post()方法,处 ...
- 01_初识C语言
第一章 - 初识C语言 基本了解C语言的基础知识,对C语言有一个大概的认识. 每个知识点就是简单认识,不做详细讲解. 1. 什么是C语言? C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的 ...
- 《玩转D语言系列》一、通过四个版本的 Hello Word 初识D语言
对于D语言,相信很多朋友还没听说过,因为它还不够流行,跟出自名门的一些语言比起来也没有名气,不过这并不影响我对它的偏爱,我就是这样的一种人,我喜欢的女孩子一定是知己型,而不会因为她外表,出身,学历,工 ...
- 第一、初识C语言
1·C语言强大而灵活,如python,LISP,FORTRAN,Perl,Logo,BASIC,PASACAL的编译器和解释器都是C语言编写的. 2·C语言的指针错误往往难以察觉,但这恰好告诉我们,一 ...
随机推荐
- asp.net mvc return file result
asp.net mvc返回文件: public ActionResult ExportReflection(string accessToken) { var reflections = GetCms ...
- {POJ}{3897}{Maze Stretching}{二分答案+BFS}
题意:给定迷宫,可以更改高度比,问如何使最短路等于输入数据. 思路:由于是单调的,可以用二分答案,然后BFS验证.这里用优先队列,每次压入也要进行检查(dis大小)防止数据过多,A*也可以.好久不写图 ...
- 很不错的sql练习题(select)
创建表和输入数据 CREATE TABLE STUDENT (SNO VARCHAR(3) NOT NULL, SNAME VARCHAR(4) NOT NULL, SSEX VARC ...
- webSocket详解
WebSocket 实战http://www.ibm.com/developerworks/cn/java/j-lo-WebSocket/index.html 转自IBMdeveloperWorks ...
- java命名规范有感
一. 注()里的内容是自己的吐槽 二. 命名规约 不能以下划线或美元符开始和结尾.反例:_name,$name,name_,name$.(我就从来没这样用过) 不能使用拼音和英文组合方式命名.更不能以 ...
- 使用sbt构建spark 程序
今日在学习scala和spark相关的知识.之前在eclipse下编写了wordcount程序.但是关于导出jar包这块还是很困惑.于是学习sbt构建scala. 关于sbt的介绍网上有很多的资料,这 ...
- Java 字符串拼接 五种方法的性能比较分析 从执行100次到90万次
[请尊重原创版权,如需引用,请注明来源及地址] > 字符串拼接一般使用“+”,但是“+”不能满足大批量数据的处理,Java中有以下五种方法处理字符串拼接,各有优缺点,程序开发应选择合适的方法实现 ...
- webView 点击页面跳转到浏览器
@interface ForumDetailViewController ()<UIWebViewDelegate> { NSUInteger _clickedNumber; } @end ...
- KMP匹配算法
先来说一下回溯法匹配字符串: 对于主字符串有一个target_index,以target_index(不动)为起点,匹配字符串pattern的长度+target_index为终点,逐个进行比较,当发现 ...
- js实现一些跨浏览器的事件方法
用JavaScript实现事件的绑定,移除,以及一些常用的事件属性的获取,时常要考虑到在不同浏览器下的兼容性,下面给出了一个跨浏览器的事件对象: var EventUtil = { on: funct ...