1. 开发工具的选择

  2. 可以用来写代码的工具:记事本、UltraEdit、Vim、Xcode等
  3. 选择Xcode的原因:苹果官方提供的开发利器、简化开发过程、有高亮显示功能
  4. 使用Xcode新建一个C程序的源代码文件(拓展名为.c或者.C)
  • 打开Xcode

  • 新建文件

  • 选择文件的类型

  • 输入文件名和选择文件的存放目录

  • 新建完毕

  • 删掉文件里自动生成的所有内容,从零开始

  1. 代码的编写

  1. 程序结构

    1. 先C程序的结构:由函数组成
  • 任何一个C语言程序都是由一个或者多个程序段(小程序)构成的,每个程序段都有自己的功能,我们一般称这些程序段为"函数"。所以,你可以说C语言程序是由函数构成的

  1. 函数的基本概念
  • 函数名:一个程序中由无数个函数组成,每个函数都有自己的名称
  • 调用(执行)函数:根据函数名就可以调用对应的函数,执行相应的功能
  1. C程序的入口
  • C程序的入口是一个名字叫做main的函数,简称main函数
  • 不管整个程序中有多少个函数,都是先执行main函数
  1. 编写程序

    1. 编写main函数(大括号{ }中的内容是函数体)

int main()

{

return 0;

}

  1. 编写多个函数,并且进行调用

int test()

{

return 0;

}

int main()

{

test();

return 0;

}

  1. 使用printf函数输出内容到屏幕上

#include <stdio.h>

int main()

{

printf("Hello World!");

return 0;

}

  1. 编译

  2. 什么是编译:将C源程序翻译成计算机能识别的0和1
  3. 使用什么编译器:Xcode3使用GCC,Xcode4使用LLVM编译器(前端用clang)
  4. 如何使用clang编译器编译程序?
  • 在终端中输入:cc –c 文件名.c
  • 编译成功,会生成.o目标文件
  1. 编译器的错误和警告功能
  • 如果代码有语法问题,编译器会直接报错。并指出错误的个数和具体行号。
  • 只要有1个错误,程序就不能编译成功,也不会生成.o文件
  • 警告信息只是编译器的一些建议,并不影响编译通过
  1. 链接

  2. 链接的作用:将.o文件和C语言函数库组合在一起,生成可执行文件
  3. 由链接器完成,clang编译器里面已经包含了链接指令
  • 在终端中输入:cc 文件名.o
  • 链接成功,会生成a.out可执行文件
  1. 运行

  2. 两种运行方式
  • 直接双击打开a.out文件
  • 终端中使用 ./a.out 指令
  1. 修改文件内容之后,一定要重新编译、链接,再运行
  2. \n的作用:回车换行
  1. 其他clang指令

  • 修改可执行文件名称:cc xxx.o -o 文件名
  • 一起编译、链接:cc xxx.c
  1. 初学者常见错误

  • 不写分号、用了中文分号
  • 字符串少了双引号、或者用了单引号,双引号里面又有双引号
  • 代码没有写在main函数内部、return之前
  • 文件拓展名不是.c或者.C,比如.txt
  • 用绝对路径编译文件,注意目标文件生成的地方
  1. 总结

  2. 整个程序的运行过程

  1. 总结常见文件的拓展名
  • .c是C语言源文件,在编写代码的时候创建
  • .o是目标文件,在编译成功的时候产生
  • .out是可执行文件,在链接成功的时候产生
  1. 总结clang指令
  • 编译:cc –c xxx.c
  • 链接:cc xxx.o
  • 编译、链接:cc xxx.c
  • 运行可执行文件:./a.out
  1. 开发中会遇到哪些错误?如何解决?
  • 语法错误,可以通过编译器的报错信息解决
  • 逻辑错误,需要耐心调试程序
  1. 学习建议
  • 学编程并不是学英文
  • 程序的可读性
  • 初学者不要过于寻根问底
  1. 习题

用2种不同的代码方式输出下面的图案

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

** itcast **

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

内容来源:传智播客李明杰老师授课内容

C语言第一节 C语言程序与开发工具的更多相关文章

  1. Mac上微信小程序官方开发工具卡死的问题

    Mac上微信小程序官方开发工具打开后卡死,无法操作,也关不掉,解决方案: 三步: 1.在应用中删除“微信web开发者工具” 2.删除一下几个配置和缓存文件: 1.-/Library/Applicati ...

  2. C语言 第一章 C语言简介

    一.C语言介绍 C是一种通用的编程语言,广泛用于系统软件与应用软件的开发.于1969年至1973年间,为了移植与开发UNIX操作系统,由丹尼斯·里奇与肯·汤普逊,以B语言为基础,在贝尔实验室设计.开发 ...

  3. 微信小程序——安装开发工具和环境【二】

    准备 开发工具下载 获取APPID 安装工具 安装 接受协议 选择安装位置 等待安装完成 安装完成 选择项目 选择小程序 填写信息 确定 无误后,点击确定进入开发页面 建立普通快速启动模板界面

  4. Scala入门到精通——第一节 Scala语言初步

    本节主要内容 Scala简单介绍 为什么要学习Scala Scala语言初步 1. Scala简单介绍 Scala(Scala Language的简称)语言是一种能够执行于JVM和.Net平台之上的通 ...

  5. opencart后台操作--第一节 多语言篇---中文语言包

    参考:http://www.cnblogs.com/404bozhu/p/5015108.html#3584448 OpenCart简体中文语言包 OpenCart V2.3.0.x 版权所有:www ...

  6. 03_java基础(三)之第一个程序与开发工具的安装

    1.第一个Java程序 ① 找一个特定的放代码的地方    ② 新建一个文本文档 --> 改名 Hello.java        注意 : 必须先把文件的后缀名都显示出来     不同的操作系 ...

  7. 微信小程序及开发工具介绍

    http://mp.weixin.qq.com/wiki  这里下载开发者工具

  8. [微信小程序]微信开发工具出现 1not found 编译 .wxss文件信息错误怎么办?

    错误代码: "1not found 编译 .wxss文件信息错误",如 下图 出现场景: 1.一般出现在安装新版本之后出现的状况,可能由于版本之间的兼容导致 解决办法: 1.重装整 ...

  9. 【微信】微信小程序 微信开发工具 创建js文件报错 pages/module/module.js 出现脚本错误或者未正确调用 Page()

    创建报错pages/module/module.js 出现脚本错误或者未正确调用 Page() 解决方法: 在js文件中添加 Page({ })

随机推荐

  1. HDFS分布式文件系统设计思想

    HDFS设计目标 1)硬件错误是常态,数据保存需要冗余. 2)数据批量读取,Hadoop擅长数据分析而不是事务处理. 3)大规模数据集. 4)简单一致醒模型,降低系统复杂度,文件一次写入多次读取, 5 ...

  2. 《Java数据结构与算法》笔记-CH4-3用栈实现分隔符匹配

    import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; /** * 利 ...

  3. mac 添加安卓设备的支持

    1. 把android设备插到mac电脑上 2. 首先可以看一下之前在该mac电脑上有没有添加过这个 , 命令 : adb devices      如果显示出,下面字样,说明之前添加过了,下面就可以 ...

  4. 实现 Web 后端和客户端之间的分布式和认证通讯

    stack.io 是一个用于实现 Web 后端和客户端之间的分布式和认证通讯. 服务器端进程之间的通讯是非常高效的,因为没有中间的代理.而来自客户端的请求通过 socket.io 进入 Node.js ...

  5. 最大二位子数组和问题(homework-02)

    前面已经谈过最大一维子数组和问题,这里面扩展到二维. 一. 常规情况 一个矩形的数组,找到一个矩形的子数组有最大的元素和,求这个和. 1. 从朴素算法入手,枚举矩形数组的4个顶点,以此计算其数组和.同 ...

  6. struts2+Hibernate4+spring3+EasyUI环境搭建之五:引入jquery easyui

    1.下载jquery easyui组件     http://www.jeasyui.com/download/index.php 2.解压 放到工程中  如图 3.jsp引入组件:必须按照如下顺序 ...

  7. 【转】深受开发者喜爱的10大Core Data工具和开源库

    http://www.cocoachina.com/ios/20150902/13304.html 在iOS和OSX应用程序中存储和查询数据,Core Data是一个很好的选择.它不仅可以减少内存使用 ...

  8. jQuery基础学习2——DOM和jQuery对象

    <body> <h3>例子</h3> <p title="选择你最喜欢的水果." >你最喜欢的水果是?</p> < ...

  9. Codeforces Round #359 (Div. 2) C. Robbers' watch (暴力DFS)

    题目链接:http://codeforces.com/problemset/problem/686/C 给你n和m,问你有多少对(a, b) 满足0<=a <n 且 0 <=b &l ...

  10. ural 1303 Minimal Coverage(贪心)

    链接: http://acm.timus.ru/problem.aspx?space=1&num=1303 按照贪心的思想,每次找到覆盖要求区间左端点时,右端点最大的线段,然后把要求覆盖的区间 ...