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语言的更多相关文章

  1. 初识 go 语言:方法,接口及并发

    目录 方法,接口及并发 方法 接口 并发 信道 结束语 前言: go语言的第四篇文章,主要讲述go语言中的方法,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示例,可直接运行. 方法,接 ...

  2. 初识 go 语言:数据类型

    目录 数据类型 指针 结构体 数组 切片 切片的方法 映射 函数闭包 结束语 前言: go语言的第三篇文章,主要讲述go语言中的数据类型,包括指针,结构体,数组,切片,映射,函数闭包等,每个都提供了示 ...

  3. 初识 go 语言:语法

    目录 语法 for 循环 if 语句 switch 语句 defer 语句 defer 栈 结束 前言: go语言系列第二篇,主要讲述go语言的语法,如循环,if判断,swich语句,defer语句, ...

  4. 初识 go 语言

    目录 go简介 安装 hello world 函数 变量 常量 可见性规则 结束 前言: 最近组内要试水区块链,初步方案定为使用fabirc来弄,而fabric的智能合约就是用go写的,借此机会正好学 ...

  5. 《Go并发编程实战》读书笔记-初识Go语言

    <Go并发编程实战>读书笔记-初识Go语言 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 在讲解怎样用Go语言之前,我们先介绍Go语言的特性,基础概念和标准命令. 一. ...

  6. 第二百五十八节,Tornado框架-逻辑处理get()方法和post()方法,初识模板语言

    Tornado框架-逻辑处理get()方法和post()方法,初识模板语言 Tornado框架,逻辑处理里的get()方法,和post()方法 get()方法,处理get方式的请求post()方法,处 ...

  7. 01_初识C语言

    第一章 - 初识C语言 基本了解C语言的基础知识,对C语言有一个大概的认识. 每个知识点就是简单认识,不做详细讲解. 1. 什么是C语言? C语言是一门通用计算机编程语言,广泛应用于底层开发.C语言的 ...

  8. 《玩转D语言系列》一、通过四个版本的 Hello Word 初识D语言

    对于D语言,相信很多朋友还没听说过,因为它还不够流行,跟出自名门的一些语言比起来也没有名气,不过这并不影响我对它的偏爱,我就是这样的一种人,我喜欢的女孩子一定是知己型,而不会因为她外表,出身,学历,工 ...

  9. 第一、初识C语言

    1·C语言强大而灵活,如python,LISP,FORTRAN,Perl,Logo,BASIC,PASACAL的编译器和解释器都是C语言编写的. 2·C语言的指针错误往往难以察觉,但这恰好告诉我们,一 ...

随机推荐

  1. JS实现关闭当前子窗口,刷新父窗口

    一.JS实现关闭当前子窗口,刷新父窗口 JS代码如下: <script> function refreshParent() {  window.opener.location.href = ...

  2. ASP.NET Misconfiguration: Missing Error Handling

    Abstract: An ASP .NET application must enable custom error pages in order to prevent attackers from ...

  3. 在Android中自定义捕获Application全局异常,可以替换掉系统的强制退出对话框(很有参考价值与实用价值)

    转载自: http://blog.csdn.net/jdsjlzx/article/details/7606423

  4. CSS基础01

    1.line-height:设置每行的高度,默认是会以文字的高度来决定 2.text-align:设置文本的对齐方式 3.vertical-align: sub 垂直对齐文本的下标. super 垂直 ...

  5. VFP MSSOAPTOOKIT 使用SOAP Headers

    .NET 有如下使用了自定义扩展HEADER来做验证  server.asmx代码 using System;using System.Collections.Generic;using System ...

  6. freemarker

    一.下载freemarker的jar包,到maven仓库下载 二.引入jar包,参考freemarker的手册写代码 1.Test.ftlh <!DOCTYPE html> <htm ...

  7. iOS开发中多线程间关于锁的使用

    为什么需要使用锁,当然熟悉多线程的你,自然不会感到陌生. 那你在代码中是否很好的使用了锁的机制呢?你又知道几种实现锁的方法呢? main.m 1 int main(int argc, const ch ...

  8. ngix代理-- 摘抄

    有两个网站,http://192.168.1.3:80和http://192.168.1.3:81, 通过nginx的配置实现只用本机作为唯一的代理服务器,只用一个端口, 实现这样的效果:请求http ...

  9. 干货 | Docker文件系统的分层与隔离

    现在就开始今天的分享~ M老师:docker 的很多特性都表现在它所使用的文件系统上,比如大家都知道docker的文件系统是分层的,所以它可以快速迭代,可以回滚.这个回滚机制跟github很像,每次提 ...

  10. mongodb的linux环境搭建

    一.启动 [mongodb@node1 ~]$ mongod -f /data/config/shard1.confmongod: /usr/lib64/libcrypto.so.10: no ver ...