TCC(Tiny C Compiler)介绍

简介:

TCC是一个超小、超快的标准C语言编译器。她可以从这里(http://bellard.org/tcc/)下载到;注意,要下载http://download.savannah.nongnu.org/releases/tinycc/tcc-0.9.25-win32-bin.zip

和notepad2一样,TCC也是免费的!(再一次酷毙了!!!)

下载好之后,解压到自己的某个文件夹里面:

image 我们所需的编译系统,就都在tcc这个文件夹里面。

TCC的使用方法是这样的:http://bellard.org/tcc/tcc-doc.html 英文的?当然,早就告诉你要好好学英语了。

举个例子说明TCC的用法:

首先我已经有了一个.c的源文件。

image

用Notepad2写好源代码,保存好:

image

接下来,使用TCC检验我们的程序是否设计正确。

首先我们要把TCC的目录添加到系统的path环境变量中去。(不知道啥叫环境变量的,请自己google一下。)具体做法如下:

右键单击“我的电脑”==》“属性”==》“高级”==》“环境变量”==》(双击系统变量中的)“path”

image image

image 在最后添加上形如 ;d:temptcc 用以指明tcc的位置。注意:之前的;是用来分隔各个位置的,千万不能少。接着,一路“确定”,就好了。

接下来,我介绍2种使用TCC的方法。这两种方法其实是一回事儿,但我更喜欢用第二种。

第一种:编译链接源代码,生成可执行文件。

打开命令行提示符:“开始”==》“运行”(输入cmd)==》“确定”

转到.c源代码所在的目录,编译链接源代码:

Microsoft Windows XP [版本 5.1.2600]
(C) 版权所有 1985-2001 Microsoft Corp.

C:Documents and SettingsAdministrator>cd d:temp

C:Documents and SettingsAdministrator>d:

D:temp>

编译链接的命令是:tcc 源代码文件名(文件名后面的.c千万不可省略,tcc后面一定要有空格);示例如下

D:temp>tcc test.c
test.c:5: missing terminating " character

这种情况,说明在test.c文件的第5行出现了错误,错误的原因是“缺少表示终止的"字符”。于是,我们在notepad2中修正我们的代码,保存,如下:

image

再次回到命令行提示符(那个黑不溜秋的界面下),编译链接:

D:temp>tcc test.c

D:temp>

什么动静都没有?没消息,就是好消息!这是电脑世界的行为准则。你看看你的文件夹,里面是不是多了这个:

image

OK,双击这个.exe的可执行文件,看看运行结果吧。哦?屏幕上一闪而过?啥也没看清,咋办?你可以直接在刚才的命令行提示符下面输入test.exe回车来执行这个文件:

D:temp>test.exe
Haha
D:temp>

你看,搞定了!

=========================

一个很重要的秘诀:在命令行提示符下面,我们往往要重复不断地输入许多同样的命令。每次都去打这些命令,是件很烦人事情。其实大可不必如此的,你只需要打一次命令,下次要重复使用这条命令的时候,你就不必再打字了,只要按键盘上“向上”的箭头方向键……看!刚才的命令是不是出来了?So cool!

=========================

上面就是我介绍的第一种使用TCC的方法。还有第二种用法:

有时候,我并不喜欢让TCC生成.exe的可执行文件,然后再去运行它。我只需要使用

tcc -run 源代码文件名

就可以直接让TCC跳过编译链接的步骤,直接运行我们的程序了(当然,前提是你的代码没有语法错误);如下:

D:temp>tcc -run test.c
Haha
D:temp>

=========================

评价TCC的优点和缺点:

优点:

小巧玲珑。塞在U盘里,随时用,随时有,连安装都不用。
支持最新的C语言国际标准。能在TCC里面跑的程序,在其他的编译环境下都能跑的动。
快!TCC的运行速度实在是快!
缺点:

没有断点和单步执行的跟踪系统,面对非常复杂的程序逻辑的时候,不好调试程序的运行时逻辑错误。
小结:TCC实在酷毙了。我很喜欢她!

目录
相关文章
|
SQL 关系型数据库 数据库
【微服务系列笔记】Seata
Seata是一种开源的分布式事务解决方案,旨在解决分布式事务管理的挑战。它提供了高性能和高可靠性的分布式事务服务,支持XA、TCC、AT等多种事务模式,并提供了全局唯一的事务ID,以确保事务的一致性和隔离性。Seata还提供了分布式事务的协调、事务日志、事务恢复等功能,帮助开发人员简化分布式事务的管理和实现。
659 1
|
消息中间件 负载均衡 调度
Docker swarm实现基于Consul和Haproxy的RabbitMQ高可用集群
基于Consul服务发现和Haproxy实现的RabbitMQ高可用的负载均衡集群
|
API Android开发 开发者
Android UI设计: 什么是RecyclerView?为什么它比ListView更好?
Android UI设计: 什么是RecyclerView?为什么它比ListView更好?
411 2
|
存储 数据中心
什么是T3机房?T1/T2/T3/T4机房等级对比详解
我们在购买IDC服务时都会选择T3机房或者T4机房,那么什么是T3机房?T3机房和T4机房有什么区别?服务器百科网来说说T1/T2/T3/T4机房等级对比详解: IDC机房等级划分 IDC机房的等级划分是根据《数据中心电信基础设施标准》而定的,它是美国国家标准学会(ANSI)颁布的,它将IDC数据中心(大型的设备和管理都比较完善的机房可以称为数据中心)基础设施的可用性定义了四种不同等级,即Tier 1、Tier 2、Tier 3和Tier 4四个等级。
20032 0
|
8月前
开赛啦!AFAC2025金融智能创新大赛正式启动,等你来报名
开赛啦!AFAC2025金融智能创新大赛正式启动,等你来报名
332 13
|
10月前
|
存储 JSON API
深入研究:淘宝天猫商品详情查询API详解
淘宝开放平台提供一系列API接口,帮助开发者获取淘宝商品的详细信息并集成到自有应用中。主要功能包括:获取单个商品详情(item_get)、评论信息(item_review)、快递费用(item_fee)、等。此外,还支持搜索商品(item_search)、按图搜索(item_search_img)、优惠券查询(item_search_coupon)、类目信息(item_cat_get)等功能。返回数据通常为JSON格式,包含商品标题、价格、库存、主图链接等基本信息,以及HTML格式的详细描述内容,方便开发者解析与展示。
|
前端开发 数据可视化 JavaScript
探索前端可视化开发:低代码平台原理与实践
【4月更文挑战第6天】本文探讨了低代码平台在前端开发中的应用,包括模型驱动和组件化开发原理,以及自动化代码生成和部署的优势。低代码平台能提高开发效率,降低技术门槛,并灵活适应变更,同时保证应用的一致性。实践中,需明确适用场景,选择合适平台,并培养团队低代码技能。通过与现有技术栈融合及持续优化,低代码平台能推动业务创新和数字化转型,开发者应积极探索其在实际项目中的应用。
510 0
|
消息中间件 Kafka 数据库
深入理解Kafka的数据一致性原理及其与传统数据库的对比
【8月更文挑战第24天】在分布式系统中,确保数据一致性至关重要。传统数据库利用ACID原则保障事务完整性;相比之下,Kafka作为高性能消息队列,采用副本机制与日志结构确保数据一致性。通过同步所有副本上的数据、维护消息顺序以及支持生产者的幂等性操作,Kafka在不牺牲性能的前提下实现了高可用性和数据可靠性。这些特性使Kafka成为处理大规模数据流的理想工具。
399 6
|
边缘计算 JSON JavaScript
一起来学 next.js - API 路由篇(轻松做全栈?)
next.js 作为最热门的 react 框架,不过这么久了好像国内使用率一直不太高。最近在研究做个小项目正好做下笔记,有兴趣的可以一起来学习。