IOS开发--C语言入门--如何结合Terminal和Vim开发C语言程序
一直以来都想着挤出时间,记录开发之路的点点滴滴(现在记录已成回忆),和大家一起分享,开发人员总是在沟通和相互学习中提高自身的能力.路过的大神也好初学者也罢,若发现文章中又观点不对的,还望大家指出.
现在我将许久前的笔记稍作整理并分享给想入门IOS开发的朋友
使用终端(Terminal)和vim编写一个C语言程序
相关知识:
关于终端:mac 上的终端就像是 windows下面的DOS窗口.我们可以通过在上面输入相应的命令来使我们的电脑做一些事情.mac 下的终端亦是如此.
关于 vim: 简单来说就是一款编辑器,它是跨平台的,支持Linux ,UNIX,Windows,Mac OS各大平台,前身是vi 也就是说 vim是vi的增强版.
废话不多说,先来写第一个C语言程序
步骤如下:
1. 打开终端.输入命令 cd Desktop/
作用:定位到桌面
2. 输入命令 mkdir Code
作用:在桌面创建一个文件夹 名称为:Code
3. 输入命令 cd Code/
作用:定位到Code目录
4. 输入命令 touch helloworld.c
作用:创建一个 helloworld.c 的文件
说明:该文件将保存到我们的Code文件夹中
相关知识点:命令是在当前目录下执行操作的,这也就是我们为什么要定位到 Desktop 和定位到 Code中(当然,这个路径并无实在意义,大家可以定位到自己喜欢的任意路径下)
5. 输入命令 vim helloworld.c 并回车
作用:使用vim 打开我们创建好的helloworld.c文件
6. 按下键盘i 并回车
作用:这是vim 命令表示我们即将开始对该文件进行编辑,
7. 输入代码
#include <stdio.h>
int main()
{
printf("hello world\n");//\n 表示换行
return ;
}
8. 敲完代码我们按下 esc键并输入 :wq 回车 (注意冒号别漏了)
作用:保存我们编辑的内容并退出vim
以上步骤过后我们便编写好了一个C语言的源文件.接下来我们将要将它变成一个可执行程序并运行起来
9. 编译和链接
输入命令:gcc helloworld.c 并回车
(该行命令实际上执行了两步操作,编译和链接)
此时查看Code文件夹我们将看到生成a.out 文件
这里解释一下编译和链接
所谓编译:就是将我们的源代码”翻译”成我们计算机懂的机器语言(众所周知 的 010100101010…)代码.计算机的世界里只有 0和1
所谓链接:就是将我们的源代码和其他C语言函数库链接起来.相当于给了我们一个工具箱.
如我们用到的printf() 函数,就属于C语言函数库提供的函数之一.其作用是将文本内容打印(显示)到我们的屏幕上.若没有链接这个环节,当我们调用printf()函数的时候,编译器将报错,原因就是找不到该函数
10. 运行
输入命令 ./a.out 并回车
结果:我们看到终端打印出 hello world
相关截图:
- 所有命令

2.vim编辑截图

此外:附上一些常见命令的网站链接
mac:
http://ss64.com/osx/ 这个网站相对介绍得比较全面
vim:
http://blog.csdn.net/xdrt81y/article/details/24062117/
IOS开发--C语言入门--如何结合Terminal和Vim开发C语言程序的更多相关文章
- 《C语言入门1.2.3—一个老鸟的C语言学习心得》—清华大学出版社炮制的又一本劣书及伪书
<C语言入门1.2.3—一个老鸟的C语言学习心得>—清华大学出版社炮制的又一本劣书及伪书 [薛非评] 区区15页,有80多个错误. 最严重的有: 通篇完全是C++代码,根本不是C语言代码. ...
- C语言入门(21)——使用DBG对C语言进行调试
C语言入门(21)--使用DBG对C语言进行调试 程序中除了一目了然的Bug之外都需要一定的调试手段来分析到底错在哪.到目前为止我们的调试手段只有一种:根据程序执行时的出错现象假设错误原因,然后在代码 ...
- C语言入门(2)——安装VS2013开发环境并编写第一个C语言程序
在C语言入门系列中,我们使用Visual studio 2013 Professional作为开发工具.本篇详细介绍如何安装Visualstudio 2013 Professional并写出我们第一个 ...
- 清华大学出版社即将推出的又一本挂羊头卖狗肉的劣书 《C语言入门1.2.3—一个老鸟的C语言学习心得》
http://www.tup.com.cn/book/showbook.asp?CPBH=051892-01
- C语言入门(20)——使用VC2013对C语言进行调试
软件调试过程中,有时会一些逻辑和内存访问方面的问题,如果没有调试器的帮助,找出何处代码导致这块内存被更改是一件非常麻烦的事情.恰当运用数据断点可以快速帮我们定位问题的所在. 1.VC的调试快捷键 F5 ...
- Perl语言入门:第九章 使用正则表达式处理文本 示例程序和代码
#! /usr/bin/perl use strict; use warnings; print "\n----------------------------------_substitu ...
- (五)Lua脚本语言入门
---恢复内容开始--- 写完这篇Lua脚本语言入门,自己就要尝试去用Lua脚本语言写esp8266了,,自己现在挺心急的,因为朋友使用esp8266本来说自己帮忙写好程序的,但是用的单片机不一样自己 ...
- 【Go语言入门系列】Go语言工作目录介绍及命令工具的使用
[Go语言入门系列]前面的文章: [保姆级教程]手把手教你进行Go语言环境安装及相关VSCode配置 [Go语言入门系列](八)Go语言是不是面向对象语言? [Go语言入门系列](九)写这些就是为了搞 ...
- Go语言入门系列(四)之map的使用
本系列前面的文章: Go语言入门系列(一)之Go的安装和使用 Go语言入门系列(二)之基础语法总结 Go语言入门系列(三)之数组和切片 1. 声明 map是一种映射,可以将键(key)映射到值(val ...
随机推荐
- PLS-00215:字符串长度限制在范围
在Oracle中有一张people表 创建跟新表的存储过程 修改定义字段长度 总结:在Oracle中执行存储过程时,输出参数的长度要与原表中字段长度一致!
- 图模型的统计推断 inference in graphical models(马尔科夫链的推断)
有关因子图(factor graphs)以及其在sum product 算法,max-algorithm中的应用,将在一下篇博客中分享. 谢谢您的关注,欢迎提出意见问题.
- 手动添加 memcached.jar包
由于目前java memcached client没有官方的maven repository可供使用,因此使用时需要手动将其安装到本地repository. java memcached client ...
- 【HDOJ】4373 Mysterious For
1. 题目描述有两种不同类型的循环,并给出一个由1.2组成的序列,表示嵌套的循环类型.问这样组着的循环一共需要多少次循环?并将结果模364875103. 2.基本思路显然,每当遇到一个类型1的序列,即 ...
- bash把所有屏幕输出重定向到文件并保持屏幕输出的方法
输出到文件log中,并在屏幕上显示:#ls >&1 | tee log 追加输出到文件log中,并在屏幕上显示:#ls >&1 | tee -a log
- Spring事务Transaction配置的五种注入方式详解
Spring事务Transaction配置的五种注入方式详解 前段时间对Spring的事务配置做了比较深入的研究,在此之间对Spring的事务配置虽说也配置过,但是一直没有一个清楚的认识.通过这次的学 ...
- poj 1753 Flip Game 枚举(bfs+状态压缩)
题目:http://poj.org/problem?id=1753 因为粗心错了好多次……,尤其是把1<<15当成了65535: 参考博客:http://www.cnblogs.com/k ...
- Visual Studio Developer Command Prompt删除localdb的方法
PM> sqllocaldb.exe stop v11. LocalDB instance "v11.0" stopped. PM> sqllocaldb.exe de ...
- Java传参那些事!
刚刚学习java传参的时候很纠结,也非常的不理解!课本上的“按值传递”和“按址传递”搞的自己是一头雾水,后来写的项目多了,自然就明白了! 现在写传参几乎就是条件反射一般——“秒成”,分享当初自己为此写 ...
- MyEclipse/Eclipse导入sun.misc.BASE64Encoder jar包步骤
1.右键项目 -->Properties -->Java Bulid Path-> Libraries -->JRE System Library-->Access ru ...