一、开发工具的选择

  1、 可以用来写代码的工具:记事本、ULtraEdit、Vim、Xcode等。

  2、 选择XCode的原因:苹果公司官方提供的开发利器、简化开发的工程、有高亮显示功能。

  3、 使用XCode新建一个C程序的源代码文件(扩展名为.c或者.C)

    # 开发XCode

    # 新建文件

    # 选择文件类型 .c

二、代码编写

  1、程序结构

    * C程序的结构:由函数组成  

      # 任何一个C语言程序都市有一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为“函数”。所以,你可以说C语言程序是由函数构成的。

    * 函数的概念

      # 函数名: 一个程序中由无数个函数组成,每个函数都有自己的名称。

      # 调用(执行)函数:根据函数名酒可以调用对应的函数,执行相应的功能。

    * C程序的入口

      # C程序的入口是一个名字叫做main的函数,简称main函数。

      # 不管整个程序中又多少个函数,都是先执行main函数。

  2、编程程序

    * 编写main函数(大括号{}中得内容是函数体)

    #include<stdio.h>

    int main()

    {

      printf("这是函数体"); // 输出字符串 调用系统函数

      return 0;

    }  

三、编译

  1、什么是编译:将C源程序翻译成计算能识别的0和1

  2、使用什么编译器:Xcode3是用GCC,XCode4使用LLVM编译器(前端clang)

  3、如果使用clang编译程序?

    * 在终端中输入:CC -c 文件名.c。(cd进入当前目录下)

    * 编译成功,会生成.o目标文件。

  4、编译器的错误和警告功能

    * 如果嗲吗有语法问题,编译器会直接报错,并指出错误的个数和具体的行号。

    * 只要有1个错误,程序就不能编译成功,也不好生成.o文件。

    * 警告信息只是编译的一些建议,并不影响编译通过。

四、连接

  1、连接的作用:将.o文件和C语言函数库组合在一起,生成可执行文件

  2、由连接器完成,clang编译器里面已经包含了连接指令。

    * 终端输入:cc 文件.o。

    * 连接成功,会生成a.out可执行文件。

五、运行

  1、两种方式运行

    * 直接双击打开a.out文件。

    * 终端中使用./a.out指令。

  2、修改文件内容之后,一定要重新编译、连接、再运行。

  3、\n的作用:回车换行。

六、其他clang指令

  1、刘改可执行文件名称:cc  xx.o   -o   文件名

  2、一起编译、连接:cc   xxx.c

七、初学者常见错误

  1、不写分号、用了中文分号

  2、字符串少了双引号、或者用了单引号,双引号里面又又双引号

  3、代码没有写在main函数内部、return之前

  4、文件扩展名不是.c 或者.C,比如.txt

  5、用绝对路径编译文件,注意目标文件生成的地方。

八、总结

  1、整个程序的运行过程

    * 编写程序 -> 源代码-> 编译 -> 目标代码 -> 连接(c语言函数库)-> 可执行的机器代码 -> 运行

  2、总结常见文件的扩展名

    * .c是C语言源文件,在编写代码的时候创建

    * .o是目标文件,在编译成功的时候产生。

    * .out是可执行文件,在连接成功的时候产生。

  3、总结clang指令

    * 编译:cc -c   xx.c

    * 连接: cc xxx.o

    * 编译、连接:cc xxx.c

    * 运行可执行文件: ./a.out

    * 更改可执行文件的名称:cc xxx.o -o xxx

  4、开发中会遇到哪些错误?如果解决?

    * 语法错误,可以通过编译器的报错信息解决

    * 逻辑错误,需要内心调试程序

  5、学习建议

    * 学编程并不是学英文

    * 程序的可读性(非常重要)

    * 初学者不要过于寻根问底

九、例子

  1、用二种不同的代码方式输出下面图案

    ************

    ****8888****

    ************

 

#include <stdio.h>

int main()

{

printf("************\n****8888****\n************\n");

;

}

#include <stdio.h>

int main()

{

printf("************\n");

printf("****8888****\n");

printf("************\n");

;

}

iOS_02_第一个C语言程序(理解编译、连接、运行)的更多相关文章

  1. 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】02-第一个C语言程序

    前言 前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法.学习任何一门语言,首先要掌握的肯定是语法.学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算 ...

  2. 【做中学】第一个 Go 语言程序:漫画下载器

    原文地址: 第一个 Go 语言程序:漫画下载器: https://schaepher.github.io/2020/04/11/golang-first-comic-downloader 之前学了点 ...

  3. 00 你的第一个C语言程序

    C语言简介 C 语言是一种通用的.面向过程式的计算机程序设计语言,即编程语言. 为移植和开发 UNIX 操作系统,丹尼斯·里奇于1972年在贝尔电话实验室设计开发了 C 语言的第一个版本. C 语言同 ...

  4. 第一个C语言程序

    从第一个C语言程序了解C语言 了解关键字 了解函数 注释 C语言的执行流程 标识符 C语言的学习重难点 从第一个C语言程序了解C语言 上图是一个在控制台上显示“Hello, World!”的C语言源代 ...

  5. C语言学习-01第一个C语言程序

    一 C语言的历史 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供 ...

  6. C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序

    在C语言入门系列中,我们使用Visual studio 2013 Professional作为开发工具.本篇详细介绍如何安装Visualstudio 2013 Professional并写出我们第一个 ...

  7. 如何把一个c语言程序做成windows服务开机自启动

    原文:如何把一个c语言程序做成windows服务开机自启动 目前写的程序是一个用c语言实现socket侦听的,那么如何把这个程序做成开机自启动呢? 我们是通过vs6.0,编译后生成了.exe文件,然后 ...

  8. Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序

    Android For JNI(一)--JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序 当你的Android之旅一步步的深入的时候,你其实会发现,很多东西都必须去和framew ...

  9. 我的第一个C语言程序

    从自学开始到现在应该有块一个月了,之前一直想要写博客一直没想好要自己建博客还是找平台来写.现在想想 其实都一样,不论在哪里,都可以记录自己学习的成长记录.这是我的第一篇关于C语言学习的博客,希望这只是 ...

随机推荐

  1. 紫书 例题 9-13 UVa 1220 (最大独立子集)

    这里的状态定义的非常的巧妙,d(i, 1)表示以i为根节点且选i的子树的最大独立子集 d(i, 0)表示以i为根节点且不选i的子树的最大独立子集 d(i, 1) = sum{ d(v, 0) | v是 ...

  2. 树莓派 使用python来操作GPIO 控制LED灯

    一.创建python驱动和控制GPIO 先新建一个文件夹用于放置脚本 mkdir python_gpio 进入文件夹内新建一个gpio_blink.py的脚本 cd python_gpio touch ...

  3. 解决树莓派新版系统 ssh连接不了问题

    一.解决办法 由于有连接了显示器,所以可以直接输入命令行开启树莓派的SSH,并且使用putty连接就可以. sudo service ssh start sudo service ssh sttus ...

  4. 关于结构体内存对齐方式的总结(#pragma pack()和alignas())

    最近闲来无事,翻阅msdn,在预编译指令中,翻阅到#pragma pack这个预处理指令,这个预处理指令为结构体内存对齐指令,偶然发现还有另外的内存对齐指令aligns(C++11),__declsp ...

  5. 【Codeforces Round #424 (Div. 2) B】Keyboard Layouts

    [Link]:http://codeforces.com/contest/831/problem/B [Description] 两个键盘的字母的位置不一样; 数字键的位置一样; 告诉你第一个键盘按某 ...

  6. Android全局退出的两种方法

    第一种方法参考<第一行代码>78页 建立一个ActivityCollector类,提供静态方法addActivity,fininshAll(以list为容器) 然后我们建立的Activit ...

  7. reactor官方文档译文(2)Reactor-core模块

    You should never do your asynchronous work alone. — Jon Brisbin 完成Reactor 1后写到 You should never do y ...

  8. 全面了解Linux下Proc文件系统

    全面了解Linux下Proc文件系统   Proc是一个虚拟文件系统,在Linux系统中它被挂载于/proc目录之上.Proc有多个功能 ,这其中包括用户可以通过它访问内核信息或用于排错,这其中一个非 ...

  9. java体系学习

    前端部分: 1)HTML:网页的核心语言,构成网页的基础 2)CSS:使网页更加丰富多彩灿烂的利器 3)JavaScript:使网页动起来的根本,加强了网页和用户之间的交互 4)HTML DOM:换一 ...

  10. DM9000C网卡驱动

    目的:通过学习,掌握如何移植.编写DM9000C网卡驱动 一.概述: DM9000是一款高度集成低功耗快速以太网处理器,该芯片集成了MAC和PHY.DM9000可以和CPU直接连接,支持8位.16位和 ...