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. CSS计算样式的获取

    一般来说我们获取CSS的样式的时候会优先采用Elment.style.cssName 这种方法,这种方法类似于对象设置get,set属性获取,例如Elment.style.cssName是获取,Elm ...

  2. support vector regression与 kernel ridge regression

    前一篇,我们将SVM与logistic regression联系起来,这一次我们将SVM与ridge regression(之前的linear regression)联系起来. (一)kernel r ...

  3. JavaScript相关图书推荐

    JavaScript语言精粹(修订版) 作      者 Douglas Crockford(道格拉斯·克罗克福德) 著:赵泽欣 等 译 出 版 社 电子工业出版社 出版时间 2012-09-01 版 ...

  4. [转] Web前端优化之 Server篇

    原文链接: http://lunax.info/archives/3093.html Web 前端优化最佳实践第二部分面向 Server .目前共计有 6 条实践规则.[注,这最多算技术笔记,查看最原 ...

  5. SQL中以count及sum为条件的查询

    在开发时,我们经常会遇到以“累计(count)”或是“累加(sum)”为条件的查询.比如user_num表: id user num 1 a 3 2 a 4 3 b 5 4 b 7   例1:查询出现 ...

  6. EasyMock(官方资料整理)

    1.要求 EasyMock要求java1.5.0及以上版本. Objenesis (2.0+)必须在classpath中来执行class mocking. 2.使用Maven 在Maven中心库中可以 ...

  7. UVALive 7461 Separating Pebbles (计算几何)

    Separating Pebbles 题目链接: http://acm.hust.edu.cn/vjudge/contest/127401#problem/H Description http://7 ...

  8. ActiveX控件是什么?

    一.ActiveX的由来 ActiveX最初只不过是一个商标名称而已,它所涵盖的技术并不是各自孤立的,其中多数都与Internet和Web有一定的关联.更重要的是,ActiveX的整体技术是由Micr ...

  9. JavaIO(03)字节流--OutputStream and InputStream

    IO概述:   IO流用来处理设备之间的数据传输 java对数据的操作是通过流的方式 java用于操作流的对象都在IO包中 流按操作数据分为两种:字节流与字符流(编码表) 流按流向分为:输入流,输出流 ...

  10. Java NIO类库Selector机制解析(上)

    一.  前言 自从J2SE 1.4版本以来,JDK发布了全新的I/O类库,简称NIO,其不但引入了全新的高效的I/O机制,同时,也引入了多路复用的异步模式.NIO的包中主要包含了这样几种抽象数据类型: ...