C语言入门:02.第一个C语言程序

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

二、代码的编写

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

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

2.编写程序

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

int main()
{
    return 0;
}

(2)编写多个函数,并且进行调用

int test()
{
    return 0;
}

int main()
{
    test();
    return 0;
}

(3)使用printf函数输出内容到屏幕上

#include <stdio.h>
int main()
{
    printf("Hello World!");
    return 0;
}

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

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

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

六、其他clang指令
    ·修改可执行文件名称:cc  xxx.o  -o 文件名
    ·一起编译、链接:cc  xxx.c

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

八、总结
(1)整个程序的运行过程


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

时间: 2024-08-02 11:04:52

C语言入门:02.第一个C语言程序的相关文章

《Go语言入门》第一个Go语言Web程序——简单的Web服务器

概述 上一篇讲了 <Go语言入门>第一个Go语言程序--HelloWorld,接下来讲一下Go语言Web开发入门必修课:第一个Go语言Web程序--简单的Web服务器. 与其它Web后端语言不同,Go语言需要自己编写Web服务器. 有关本地环境的搭建与基础学习,请参考: <Go语言入门>如何在Windows下安装Go语言编程环境 Go语言Web应用:IBM的云平台Bluemix使用初体验--创建Go语言 Web 应用程序,添加并使用语言翻译服务 Web服务器代码 Google在ht

【Objective-C】02.第一个OC语言类

02.第一个OC语言类 在java语言中,创建一个类只需要一个文件,而在oc语言中,创建一个类需要两个文件.m文件和.h文件. .h文件是声明类,用来声明成员变量和方法.用关键词@interface来修饰,以@end结尾. .m文件是实现类,用来实现成员变量和方法,用关键词@implementation来修饰,以@end结尾. 方法:在oc语言中方法都需要用+或-来表明方法的类型. +表示的是静态方法. -表示的是动态方法. .h文件中的所有方法都是public,不能更改. 成员变量:成员变量按

C语言入门(1)——C语言概述

1.程序与编程语言 我们使用计算机离不开程序.程序告诉计算机应该怎样运行.程序(Program)是一个精确说明怎样进行计算的指令序列.这里的计算能够是数学运算,比方通过一些数学公式求解,也能够是符号运算.比方我们使用world编辑一个文档或是通过搜索引擎检索信息. 计算机本质上是由数字电子电路组成的运算机器,全部的运算都仅仅能通过数字来表示和处理.通过将各种数据转换为数字表示,能够使计算机处理各种信息.比方音乐.图片.电影等. 程序由一系列指令组成的,指令就是指挥计算机做某种运算的命令.通常包括

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

一 C语言的历史 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台. 二十世纪八十年代,为了避免各开发厂商用的C语言语法产生差异,由美国国家标准局为C语言订定了一套完整的国际标准语法,称为A

《Python入门》第一个Python Web程序——简单的Web服务器

上一篇讲了<Python入门>Windows 7下Python Web开发环境搭建笔记,接下来讲一下Python语言Web服务的具体实现:第一个Python Web程序--简单的Web服务器. 与其它Web后端语言不同,Python语言需要自己编写Web服务器. 如果你使用一些现有的框架的话,可以省略这一步: 如果你使用Python CGI编程的话,也可以省略这一步: 用Python建立最简单的web服务器 利用Python自带的包可以建立简单的web服务器.在DOS里cd到准备做服务器根目录

从入门到上线一个天气小程序

作者:wuwhs segmentfault.com/a/1190000017388333 前言 学习了一段时间小程序,大致过了两遍开发文档,抽空做个自己的天气预报小程序,全当是练手,在这记录下.小程序开发的安装.注册和接入等流程就不罗列了,在小程序接入指南已经写得很清楚了,以下只对开发过程常用到得一些概念进行简单梳理,类比 Vue 加强记忆,最后选取个人项目天气小程序中要注意的几点来说明. 欢迎扫码体验: 源码请戳这里,欢迎start~ 初始化项目目录结构 安装好开发者工具,填好申请到的 App

【Go语言系列】1.4、GO语言简介:第一个Go语言程序

接下来我们来编写第一个 Go 程序 hello.go(Go 语言源文件的扩展是 .go),代码如下: // 声明 main 包 package main import ( "fmt" // 导入 fmt 包,打印字符串是需要用到 ) // 声明 main 主函数 func main() { fmt.Println("Hello World!") // 打印 Hello World! } 你也许不明白这些代码的含义,没关系,后面的文章里会一一说明. 代码写好了那我们怎

C 语言入门---第六章 C语言数组

数组就是一些列具有相同类型的数据的集合,这些数据在内存中一次挨着存放,彼此之间没有缝隙. 我们可以将二维数组看作一个Excel表格,有行有列,length1 表示行数,length2 表示列数,要在二维数组中定位某个元素,必须同时指明行和列. 二维数组在概念上是二维的,但在内存中是连续存放的,换句话说,二维数组的各个元素是相互挨着的,彼此之间没有缝隙.在线性内存中存放二维数组有两种方式: 1. 按行排列,放完一行之后再放入第二行 2. 按列排列,放完一列之后再放入第二列. ===========

GO语言练习:第一个Go语言工程--排序

1.代码 2.编译 3.运行 1.代码框架 /home/fengbo/sorter $ tree . ├── bin ├── pkg ├── readme.txt └── src ├── algorithms │   ├── bubblesort │   │   ├── bubblesort.go │   │   └── bubblesort_test.go │   └── qsort │   ├── qsort.go │   └── qsort_test.go └── sorter └── s