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 ...
随机推荐
- Servlet课程0424(二) 通过继承GenericServlet来开发Servlet
//这是第二种开发servlet的方法(继承GernericServlet) package com.tsinghua; import javax.servlet.GenericServlet; im ...
- iOS开发--绘图教程
本文是<Programming iOS5>中Drawing一章的翻译,考虑到主题完整性,翻译版本中加入了一些书中未涉及到的内容.希望本文能够对你有所帮助. 本文由海水的味道翻译整理,转载请 ...
- CSS+DIV 布局三种定位方式
一.普通流 普通流中元素框的位置由元素在HTML中的位置决定.块级元素从上到下依次排列,框之间的垂直距离由框的垂直margin计算得到.行内元素在一行中水平布置. 二.定位 1.相对定位 被看作普通流 ...
- Django用户认证系统(三)组与权限
Django的权限系统很简单,它可以赋予users或groups中的users以权限. Django admin后台就使用了该权限系统,不过也可以用到你自己的代码中. User对象具有两个ManyTo ...
- WCF 传输的序列化
// 注意: 使用“重构”菜单上的“重命名”命令,可以同时更改代码和配置文件中的接口名“IService”.[ServiceContract]public interface IService{ [O ...
- android从应用到驱动之—camera(1)---程序调用流程[转]
一.开篇 写博客还得写开篇介绍,可惜,这个不是我所擅长的.就按我自己的想法写吧. 话说camera模块,从上层到底层一共包含着这么几个部分: 1.apk------java语言 2.camera的ja ...
- 宏FSP_SEG_INODES_PER_PAGE
#define FSP_SEG_INODES_PER_PAGE(zip_size) \ (((zip_size ? zip_size : UNIV_PAGE_SIZE) \ - FSEG_ARR_OF ...
- bzoj1471
转化补集的思想,首先求出任意两点之间路径数目 然后求两条路径第一次相交在点k(按照拓扑排序的顺序)的数目,显然这里要用到容斥 然后pascal有坑爹的范围检测,所以运算中有些不会影响到答案但会爆int ...
- 存储过程 分页【NOT IN】和【>】效率大PK 千万级别数据测试结果
use TTgoif exists (select * from sysobjects where name='Tonge')drop table Tongecreate table Tonge( I ...
- SCADA软件整体架构
SCADA软件整体框架如下所示: 1.免费版本可以支持的IO容量为2048点,无运行时间限制. 2.免费版本仅支持本地Runtime运行,CLServer服务器只能运行24小时. 3.免费版本支持的驱 ...