ios开发之C语言第一天
最近在学习ios开发,先学习C语言,再学习OC和swift.正所谓"万丈高楼平地起",打好基础是很重要的,所以C语言也必须好好学习.学习中所使用的操作系统是OS X,开发工具是Xcode.
操作系统
- 操作系统是什么?
是一个软件,直接运行在硬件之上. - 操作系统有什么用?
主要是用来管理计算机的硬件设备 - 硬件,接口,操作系统三者关系的比喻
如果把计算机硬件比喻成一台汽车,那么方向盘,离合器,变速杆什么的就像是操作系统,驾驶人并不知道汽车如何工作,但是通过汽车提供给我们的接口(方向盘,油门,刹车等)就可以让汽车想怎么开就怎么开,因此我们可以说操作系统全面接管硬件,使用人不必知道如何工作,只要利用操作系统接口去操作硬件就完成硬件操作.
应用软件与操作系统
- 电脑播放一首歌曲的过程
1.把存储在硬盘中的歌曲加载到内存 ———>调用接口
2.将内存中的歌曲数据解码 ———>调用接口
3.将解码后的数据发送给声卡 ———>调用接口
4.声卡调用音响曲播放音乐 ———>调用接口 - 有什么缺点
一步步的调用接口,仍然很不方便 - 所以才有了应用程序的开发
应用程序就把操作程序提供的接口”封装”成更为简单的操作,通过一个简单的操作,就能让操作系统掉一系列接口,比如点击一个播放按钮,就能完成第一点调用4个接口. - 应用程序的本质
1.应用程序开发的本质就是按照顺序调用操作系统的接口完成一系列的操作.
2.操作系统是运行在硬件之上,应用软件运行在操作系统之上.
OS X系统的目录结构
- 例如:桌面上一个名为abc文件夹的路径
/Users/mac/Desktop/abc - 根目录与家目录
1.根目录:磁盘根目录,如OS X系统中的Macintosh HD
2.家目录:当前用户的目录,如/Users/mac
终端的使用
- 终端是什么?
是OS X系统自带的1个程序,类似windows下面的cmd(命令行) - 怎么打开
launchpad/F4 —> 其他 —>终端 - 怎么用?
1.界面太小可以command + 加号
2.终端常用命令:
pwd 显示终端的工作路径.
ls 清单list 显示当前工作路径下的所有的文件以及文件夹.
ls -l 以详细信息显示当前工作路径下的所有文件以及文件夹.
cd 要切换的工作路径.
mkdir 在当前工作路径下创建一个文件夹.
clear 清除屏幕上的信息.
touch 在当前工作路径下创建一个空文件.
开发一个C语言的步骤
- 咱们必须在电脑上安装编译器
1.为什么?
C语言是高级语言,所以开发出来的是高级语言,计算机不能直接执行,必须先经过编译器的编译,形成可执行的机器语言程序.
2.安装编译器
1>安装xcode —>xcode内部集成了编译器
xcode 4之前编译器是 GCC
xcode 4之后是clang (基于LLVM)
3.怎么验证自己是不是安装编译器成功
打开终端,输入 cc+回车
如果提示: ” clang: error: no input files” 说明安装成功了 - 一个C语言程序从代码的书写到能够运行这整个过程
1>编写程序 文件名.c
2>编译 cc -c + 文件名.c 生成.o的目标文件
3>链接 cc + 文件名.o 生成a.out的可执行文件
4>运行 ./a.out
开发C程序注意
- 注意操作的位置/路径
- 标点的中英文,只能写英文标点
- 注意字母大小写
- 注意报错的行号和列号
- 更改源代码,必须要重新编译链接
- 注意\n的含义是换行
ios开发之C语言第一天的更多相关文章
- iOS开发之SQLite-C语言接口规范(一)——Ready And Open Your SQLite
为什么要搞一搞SQLite的C语言接口规范呢? 因为在做iOS开发中难免会遇到操作数据库的情况,你可以使用第三方的FMDB等,或者使用CoreData.但我们还是有必要去搞清楚如何去使用SQLite的 ...
- iOS开发之SQLite--C语言接口规范(四) —— Result Values From A Query
数据库的在上一篇博客中<SQLite之C语言接口规范(三)——Binding Values To Prepared Statements>用到了如何从查询结果中取出结果值.今天的博客就详细 ...
- iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements
在前面的博客中已经介绍了如何连接SQLite数据库,并且简单的查询和遍历结果集.在前面用到了sqlite3_stmt *stmt,也就是预编译后的SQL语句.在本篇博客中会了解一下sqlite3_st ...
- iOS开发之SQLite-C语言接口规范(二) —— Prepared Your SQL Statements
在<SQLite的C语言接口规范(一)>中介绍了如何去连接打开数据库,本篇博客就介绍如何操作数据库,本篇主要给出了如何执行数据库查询语句(Select), 然后遍历结果集.本篇博客就直接使 ...
- iOS开发之C语言函数库
在iOS开发中不可避免的需要使用数学函数进行计算,我们可以使用C标准库头文件中定义的数学常量宏及数学函数来进行基本的数学计算操作,这些C函数都可以在微软的MSDNAPI库中找到.(https://ms ...
- 李洪强iOS开发之OC语言前期准备
OC语言前期准备 一.OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码. 可以使用OC开发mac osx平台和ios平台的应 ...
- iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例
本篇博客就使用前面操作SQLite的知识来实现如何去插入,删除和更新数据.然后再把操作SQlite数据库常用的方法进行一个封装.把常用方法进行封装后,把Cars数据库中的其中一个表的数据进行查询,并在 ...
- 李洪强iOS开发之OC语言基础知识
OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...
- 李洪强iOS开发之OC语言类的深入和分类
OC语言类的深入和分类 一.分类 (一)分类的基本知识 概念:Category 分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...
随机推荐
- JGit与远程仓库链接使用的两种验证方式(ssh和https)
JGit是使用JAVA的API来操控Git仓库的库,由Eclipse公司维护.他提供的API分成两个层次,底层命令和高层命令.底层API是直接作用于低级的仓库对象,高层的API是一个面向普通用户级别功 ...
- 利用URL重写实现参数目录化
参数目录化,就是将 类似 http://www.abc.com/store/store.aspx?id=1024 这样的网址,对外改为 http://www.abc.com/1024. 要实现这种功能 ...
- 怎样克服 JavaScript 框架疲劳?
[编者按]Tero Parviainen 著有 Build Your Own AngularJS,曾两次组织 Clojure CUP 竞赛,在 Twitter 上有近两千名关注者. 在本文中.Tero ...
- [转]将某个Qt4项目升级到Qt5遇到的问题
原文:http://hi.baidu.com/xchinux/item/9044d8ce986accbb0d0a7b87晚上花了4个小时,将以前的一个项目从Qt 4.8.4-MinGW升级到了Qt5. ...
- shell脚本实现检測回文字符串
全部回文字的结构特征例如以下: 假设字符数是偶数,那么它在结构上表现为:一个字符序列连着还有一个字符同样但次序恰好相反的字符序列. 假设字符数为奇数,那么它在结构上表现为:一个字符序列连着还有一个字符 ...
- Java中List和ArrayList的区别(转)
List是一个接口,而ListArray是一个类. ListArray继承并实现了List. 所以List不能被构造,但可以向上面那样为List创建一个引用,而ListArray就可以被构造. ...
- CentOS下MySQL 5.7编译安装
CentOS下MySQL 5.7编译安装 文章目录 安装依赖包 下载相应源码包 添加mysql用户 预编译 编译安装 启动脚本,设置开机自启动 /etc/my.cnf,仅供参考 初始化数据库 设置 ...
- Windows系统下搭建Jenkins环境
1. 安装JDK JDK下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.ht ...
- CentOS 6.7安装Hadoop 2.6.3集群环境
在CentOS 6.7 x64上搭建Hadoop 2.6.3完全分布式环境,并在DigitalOcean上测试成功. 本文假设: 主节点(NameNode)域名(主机名):m.fredlab.org ...
- 【锋利的jQuery】学习笔记04
第四章 jQuery中的事件和动画 一.jQuery中的事件 加载DOM 在JS中等待页面加载完成通常使用window.onload方法,而在jQuery中则使用$(document).ready() ...