iOS_02_第一个C语言程序(理解编译、连接、运行)
一、开发工具的选择
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语言程序(理解编译、连接、运行)的更多相关文章
- 李洪强iOS开发之【零基础学习iOS开发】【02-C语言】02-第一个C语言程序
前言 前面已经唠叨了这么多理论知识,从这讲开始,就要通过接触代码来学习C语言的语法.学习任何一门语言,首先要掌握的肯定是语法.学习C语言语法的目的:就是能够利用C语言编写程序,然后运行程序跟硬件(计算 ...
- 【做中学】第一个 Go 语言程序:漫画下载器
原文地址: 第一个 Go 语言程序:漫画下载器: https://schaepher.github.io/2020/04/11/golang-first-comic-downloader 之前学了点 ...
- 00 你的第一个C语言程序
C语言简介 C 语言是一种通用的.面向过程式的计算机程序设计语言,即编程语言. 为移植和开发 UNIX 操作系统,丹尼斯·里奇于1972年在贝尔电话实验室设计开发了 C 语言的第一个版本. C 语言同 ...
- 第一个C语言程序
从第一个C语言程序了解C语言 了解关键字 了解函数 注释 C语言的执行流程 标识符 C语言的学习重难点 从第一个C语言程序了解C语言 上图是一个在控制台上显示“Hello, World!”的C语言源代 ...
- C语言学习-01第一个C语言程序
一 C语言的历史 C语言是一门通用计算机编程语言,应用广泛.C语言的设计目标是提供一种能以简易的方式编译.处理低级存储器.产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言. 尽管C语言提供 ...
- C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序
在C语言入门系列中,我们使用Visual studio 2013 Professional作为开发工具.本篇详细介绍如何安装Visualstudio 2013 Professional并写出我们第一个 ...
- 如何把一个c语言程序做成windows服务开机自启动
原文:如何把一个c语言程序做成windows服务开机自启动 目前写的程序是一个用c语言实现socket侦听的,那么如何把这个程序做成开机自启动呢? 我们是通过vs6.0,编译后生成了.exe文件,然后 ...
- Android For JNI(一)——JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序,使用C启动JAVA程序
Android For JNI(一)--JNI的概念以及C语言开发工具dev-c++,编写你的第一个C语言程序 当你的Android之旅一步步的深入的时候,你其实会发现,很多东西都必须去和framew ...
- 我的第一个C语言程序
从自学开始到现在应该有块一个月了,之前一直想要写博客一直没想好要自己建博客还是找平台来写.现在想想 其实都一样,不论在哪里,都可以记录自己学习的成长记录.这是我的第一篇关于C语言学习的博客,希望这只是 ...
随机推荐
- LoadRunner使用教程
1.了解Loadrunner 1.1 LoadRunner 组件有哪些? LoadRunner 包含下列组件: ➤ 虚拟用户生成器用于捕获最终用户业务流程和创建自动性能测试脚本(也称为虚拟用户脚本). ...
- 洛谷 P2684 搞清洁
P2684 搞清洁 题目描述 FJ准备分配它的N只奶牛(1 <= N <= 25,000) 做清洁工作,他把一天分成T(1 <= T <= 1,000,000)个时间段,他希望 ...
- 1.6 INSERT语句
1.6 INSERT语句正在更新内容,请稍后
- 算法题:给你一个自然数N,求[6, N]之内的全部素数中, 两两之和为偶数的那些偶数。
/* 算法题:给你一个自然数N,求[6, N]之内的全部素数中. 两两之和为偶数的那些偶数. */ #include <iostream> using namespace std; voi ...
- 秀秀SolarWinds为网络工程师准备的工具
SolarWinds Engineer's Toolset部分功能截图 650) this.width=650;" onclick='window.open("http://blo ...
- 分享一个表格插入和删除编辑功能用jQuery实现
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- MySql_Learn
1 id 自增长 auto_increment 2 获取当前时间 now() 3 新增字段 修改字段名称 简单分页功能 limit 10 offset 20; 查询第21到30条数据 selec ...
- 洛谷 P1957 口算练习题
洛谷 P1957 口算练习题 题目描述 王老师正在教简单算术运算.细心的王老师收集了i道学生经常做错的口算题,并且想整理编写成一份练习. 编排这些题目是一件繁琐的事情,为此他想用计算机程序来提高工作效 ...
- WPF MVVM架构 EF、WCF、IOC 设计示例经典
概要 该演示项目利用WPF应用程序构建的MVVM架构示例, 运用了Unity容器接口注入, MVVM的经典设计, 后台利用的EF+WCF. 后台实现: 从数据库生成的emdx 结合上下文进行数据交互, ...
- VC多线程临界区
在使用多线程时,一般非常少有多个线程全然独立的工作.往往是多个线程同一时候操作一个全局变量来获取程序的执行结果.多个线程同一时候訪问同一个全局变量,假设都是读取操作,则不会出现故障. 假设是写操作,则 ...