最近在学习ios开发,先学习C语言,再学习OC和swift.正所谓"万丈高楼平地起",打好基础是很重要的,所以C语言也必须好好学习.学习中所使用的操作系统是OS X,开发工具是Xcode.


  • 操作系统

  1. 操作系统是什么?

    是一个软件,直接运行在硬件之上.
  2. 操作系统有什么用?

    主要是用来管理计算机的硬件设备
  3. 硬件,接口,操作系统三者关系的比喻

    如果把计算机硬件比喻成一台汽车,那么方向盘,离合器,变速杆什么的就像是操作系统,驾驶人并不知道汽车如何工作,但是通过汽车提供给我们的接口(方向盘,油门,刹车等)就可以让汽车想怎么开就怎么开,因此我们可以说操作系统全面接管硬件,使用人不必知道如何工作,只要利用操作系统接口去操作硬件就完成硬件操作.
  • 应用软件与操作系统

  1. 电脑播放一首歌曲的过程

    1.把存储在硬盘中的歌曲加载到内存     ———>调用接口

    2.将内存中的歌曲数据解码                ———>调用接口

    3.将解码后的数据发送给声卡             ———>调用接口

    4.声卡调用音响曲播放音乐                ———>调用接口
  2. 有什么缺点

    一步步的调用接口,仍然很不方便
  3. 所以才有了应用程序的开发

    应用程序就把操作程序提供的接口”封装”成更为简单的操作,通过一个简单的操作,就能让操作系统掉一系列接口,比如点击一个播放按钮,就能完成第一点调用4个接口.
  4. 应用程序的本质

    1.应用程序开发的本质就是按照顺序调用操作系统的接口完成一系列的操作.

    2.操作系统是运行在硬件之上,应用软件运行在操作系统之上.
  • OS X系统的目录结构

  1. 例如:桌面上一个名为abc文件夹的路径

    /Users/mac/Desktop/abc
  2. 根目录与家目录

    1.根目录:磁盘根目录,如OS X系统中的Macintosh HD

    2.家目录:当前用户的目录,如/Users/mac
  • 终端的使用

  1. 终端是什么?

    是OS X系统自带的1个程序,类似windows下面的cmd(命令行)
  2. 怎么打开

    launchpad/F4 —> 其他 —>终端
  3. 怎么用?

    1.界面太小可以command + 加号

    2.终端常用命令:

      pwd 显示终端的工作路径.

      ls 清单list 显示当前工作路径下的所有的文件以及文件夹.

      ls -l 以详细信息显示当前工作路径下的所有文件以及文件夹.

      cd 要切换的工作路径.

      mkdir 在当前工作路径下创建一个文件夹.

      clear 清除屏幕上的信息.

      touch 在当前工作路径下创建一个空文件.
  • 开发一个C语言的步骤

  1. 咱们必须在电脑上安装编译器

    1.为什么?

      C语言是高级语言,所以开发出来的是高级语言,计算机不能直接执行,必须先经过编译器的编译,形成可执行的机器语言程序.

    2.安装编译器

      1>安装xcode —>xcode内部集成了编译器

      xcode 4之前编译器是 GCC

      xcode 4之后是clang (基于LLVM)

    3.怎么验证自己是不是安装编译器成功

      打开终端,输入 cc+回车

      如果提示: ” clang: error: no input files” 说明安装成功了
  2. 一个C语言程序从代码的书写到能够运行这整个过程

    1>编写程序  文件名.c

    2>编译 cc -c + 文件名.c  生成.o的目标文件

    3>链接 cc + 文件名.o      生成a.out的可执行文件

    4>运行 ./a.out
 
     注意点:
          编译器在编译代码的时候,会先检查你的.c文件是不是符合C语言的语法规则,如果不符合会报错或警告,提示你具体哪里出错了
          warning—>警告,编译可以通过,能形成.o文件,能否形成a.out是不确定的
          error—>错误,你代码是错的,连编译形成.o的资格都没有
 
  • 开发C程序注意

  1. 注意操作的位置/路径
  2. 标点的中英文,只能写英文标点
  3. 注意字母大小写
  4. 注意报错的行号和列号
  5. 更改源代码,必须要重新编译链接
  6. 注意\n的含义是换行
 

ios开发之C语言第一天的更多相关文章

  1. iOS开发之SQLite-C语言接口规范(一)——Ready And Open Your SQLite

    为什么要搞一搞SQLite的C语言接口规范呢? 因为在做iOS开发中难免会遇到操作数据库的情况,你可以使用第三方的FMDB等,或者使用CoreData.但我们还是有必要去搞清楚如何去使用SQLite的 ...

  2. iOS开发之SQLite--C语言接口规范(四) —— Result Values From A Query

    数据库的在上一篇博客中<SQLite之C语言接口规范(三)——Binding Values To Prepared Statements>用到了如何从查询结果中取出结果值.今天的博客就详细 ...

  3. iOS开发之SQLite--C语言接口规范(三)——Binding Values To Prepared Statements

    在前面的博客中已经介绍了如何连接SQLite数据库,并且简单的查询和遍历结果集.在前面用到了sqlite3_stmt *stmt,也就是预编译后的SQL语句.在本篇博客中会了解一下sqlite3_st ...

  4. iOS开发之SQLite-C语言接口规范(二) —— Prepared Your SQL Statements

    在<SQLite的C语言接口规范(一)>中介绍了如何去连接打开数据库,本篇博客就介绍如何操作数据库,本篇主要给出了如何执行数据库查询语句(Select), 然后遍历结果集.本篇博客就直接使 ...

  5. iOS开发之C语言函数库

    在iOS开发中不可避免的需要使用数学函数进行计算,我们可以使用C标准库头文件中定义的数学常量宏及数学函数来进行基本的数学计算操作,这些C函数都可以在微软的MSDNAPI库中找到.(https://ms ...

  6. 李洪强iOS开发之OC语言前期准备

    OC语言前期准备 一.OC简介 Oc语言在c语言的基础上,增加了一层最小的面向对象语法,完全兼容C语言,在OC代码中,可以混用c,甚至是c++代码. 可以使用OC开发mac osx平台和ios平台的应 ...

  7. iOS开发之SQLite--C语言接口规范(五)——iOS开发使用SQLite实例

    本篇博客就使用前面操作SQLite的知识来实现如何去插入,删除和更新数据.然后再把操作SQlite数据库常用的方法进行一个封装.把常用方法进行封装后,把Cars数据库中的其中一个表的数据进行查询,并在 ...

  8. 李洪强iOS开发之OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

  9. 李洪强iOS开发之OC语言类的深入和分类

    OC语言类的深入和分类 一.分类 (一)分类的基本知识  概念:Category  分类是OC特有的语言,依赖于类. 分类的作用:在不改变原来的类内容的基础上,为类增加一些方法. 添加一个分类: 文件 ...

随机推荐

  1. Swift开发:NSLayoutConstraint纯代码实现自动布局-初级篇

    要求 宽高200的view,通过代码,使得view在距离父控件的右下角20边距处 /* 约束的设置,控件内部约束由自己添加,比如宽高,如果是与其他的 控件约束那么有父控件添加 *创建约束 NSLayo ...

  2. 使用java进行文件编码转换

    在开发过程中,可能会遇到文件编码的转换,尽管说开发工具eclipse能够转换编码,可是有的情况却非常不方便.比方,原来文件本身的编码是GBK,如今要转换成UTF-8,假设直接在eclipse中把文件编 ...

  3. OpenJDK和Sun/OracleJDK 区别 与联系

    首先要先明确之间,以及OpenJDK 6.OpenJDK 7.OpenJDK 7u和OpenJDK 8等项目之间是什么关系,这有助于确定接下来编译要使用的JDK版本和源码分支.从前面介绍的Java发展 ...

  4. 【UML九种图系列】之用例图

    用例图: 由参与者(Actor).用例(UseCase)以及它们之间的关系构成的用于描述系统功能的动态视图称为用例图.用例图描述了系统提供的一个功能单元.用例图的主要目的是帮助开发团队以一种图形化的方 ...

  5. 我的 ubuntu 12.04.2修复Grub

    网上有很多…… 首先我做了U盘启动,然后进入LiveCD模式. 输入grub,提示说要重新安装,好了,那就安装吧,连好网,sudo apt-get install grub 安装成功后,sudo -i ...

  6. 禁止输出重定向(>)覆盖已存在文件(防止误操作)

    在输出重定向中,>表示重定向并覆盖已有文件内容,为了防止误操作,覆盖重要的内容,可以使用如下命令: set -C 这样输出重定向到一个已有文件就会提示: cannot overwrite exi ...

  7. ArcGIS 设置地图显示范围大小

    Arcmap的FullExtent默认是地图加载的时候的extent.其实这个fullExtent是可以设置的. 打开ArcMap,选择左边图例的Layers ,右键点击,选择“Properties. ...

  8. 解决 TortoiseGit 诡异的 Bad file number 问题

    http://blog.csdn.net/renfufei/article/details/41648061 问题描述 昨天,以及今天(2014-11-29),使用 TortoiseGit 时碰到了一 ...

  9. Android- Context理解

    学习了安卓以后还是不理解Context的用法:Api文档链接http://wear.techbrood.com/reference/android/content/Context.html 一个非常好 ...

  10. SQL学习:主键,外键,主键表,外键表,数据库的表与表之间的关系;

    在数据库的学习中,对于一个表的主键和外键的认识是非常重要的. 主键:在一个表中,能唯一的表示一个事物(或者一条记录)的字段,我们称之为主键 注意: 主键的设置可以不只是用一个字段,也可以用若干个字段的 ...