初识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语言的指针错误往往难以察觉,但这恰好告诉我们,一 ...
随机推荐
- androidstudio 配置git和github
git是版本控制工具 github是一个网站,git可以把项目上传至这个网站 1:先下载git,并且安装,一般默认即可,安装成功可以点击电脑右键出现 2:生成id_rsa.pub, 配置账号和邮箱 点 ...
- ThinkPHP升级指导
升级指导 http://www.kancloud.cn/manual/thinkphp5/163239 从V5.0.1升级到V5.0.2 从V5.0.1升级到V5.0.2需要注意如下事项: 下列模型属 ...
- Parquet与ORC:高性能列式存储格式(收藏)
背景 随着大数据时代的到来,越来越多的数据流向了Hadoop生态圈,同时对于能够快速的从TB甚至PB级别的数据中获取有价值的数据对于一个产品和公司来说更加重要,在Hadoop生态圈的快速发展过程中,涌 ...
- 如何优化cocos2d程序的内存使用和程序大小
在我完成第一个游戏项目的时候,我深切地意识到"使用cocos2d来制作游戏的开发者们,他们大多会被cocos2d的内存问题所困扰".而我刚开始接触cocos2d的时候,社区里面的人 ...
- 丰富自己的代码库-SqlServerHelper(Ado)
设计思路很简单,就是把数据封装为DataTable类,封装了类型转换,使用者可以不必考虑任何类型转换,而使用VC提供的CString即可.封装了按行号查找功能,先看代码 #pragma once #i ...
- Getting Started
https://developers.google.com/v8/get_started Getting Started This document introduces some key V8 co ...
- 重走java--Step 3
java基础(三)之枚举用法用法一:常量 public enum Color { RED,GREEN,RED,YELLOW;}用法二:枚举中自定义方法/** * 枚举中自定义方法 */publi ...
- jvm terminated. exit code=13
The -vm option and its value (the path) must be on separate lines. The value must be the full absolu ...
- Net分布式系统之三:Keepalived+LVS+Nginx负载均衡之高可用
上一篇写了nginx负载均衡,此篇实现高可用(HA).系统整体设计是采用Nginx做负载均衡,若出现Nginx单机故障,则导致整个系统无法正常运行.针对系统架构设计的高可用要求,我们需要解决Nginx ...
- IOS--UIAlertView造成屏幕闪烁
在异步操作中,如果直接Show一个UIAlertView可能会造成屏幕闪烁(目前在iPhone5上发现),解决办法如下: UIAlertView *alert = [[UIAlertView allo ...