Tcc学习笔记(一) 开篇
TCC,全称Tiny C Compiler(http://bellard.org/tcc/),是一个颇具特色的C编译器,你能把它当作一个C语言解释器来用,也可以嵌入你自己的应用程序作一个动态代码生成器。
Tiny C Compiler(缩写为TCC, tCc或TinyCC)用于x86(16/32位)或是x86-64(64位)系统的Ccompiler,而开发者为Fabrice Bellard。软件是设计用于低级电脑环境,或是于磁盘容量有限的空间中(1.44磁片或是硬盘)。TCC是在GNU宽通用公共许可证(LGPL)协议规范下发布。软件可以适用于Windows、Linux、Unix操作系统,而历史最新版本为0.9.26(Feb 15, 2013),Fabrice Bellard已经停止维护。
目前TCC在repo.or.cz/tinycc.git仍然有人维护,可以那里下载到最新版或者通过git clonegit://repo.or.cz/tinycc.git拷贝到本地。增加了#pragma comment(lib,"library")的预处理功能。
TCC匹配ANSI C(C89/C90)规范,Tiny C Compiler Reference Documentation accessed on 2008-08-07]亦匹配新版的ISO C99标准规范,与GNU C扩展的内嵌汇编语言(即inline assembler,内联汇编大陆用语)功能汇编语言。
而Google Andriod系统内亦曾经自带于其中,于Andriod 2.0版本中,可详见于Jserv网站上的文章:
TCC与其他C语言编译器的不同处在于:
- 容量小,软件大小约为1MB左右,可存储于1.44MB的磁盘片中使用。
- 速度快,以TCC开发的程序可运行于x86(16/32位)与 x86-64(64位)环境中,据开发者说,运行比GCC较来得相当快速。程序亦可以包含汇编语言(inline Assembler)于其中运行与编译。
- 无限制,其他C语言的动态Library祗要匹配ISO C99规范,皆可以给予TCC来使用与编译。
- 安全性,TCC包含一个可选的memory(内存)和boundschecker(程序检测器),经过检测的代码可以随意地混合于标准代码内。
- 其他,TCC为命令行式的使用,目前并无集成性开发环境,但可以配合其他的编辑软件使用(如:UltraEdit ...等)。
Tcc学习笔记(一) 开篇的更多相关文章
- SQL反模式学习笔记1 开篇
什么是“反模式” 反模式是一种试图解决问题的方法,但通常会同时引发别的问题. 反模式分类 (1)逻辑数据库设计反模式 在开始编码之前,需要决定数据库中存储什么信息以及最佳的数据组织方式和内在关联方式. ...
- Tcc学习笔记(三) 使用举例
TCC的使用以使用第三方库为例子,例子包括:OpenGL , GMP以及SDL等. 1.TCC使用GLUT 去OpenGL下载http://www.opengl.org/resources/libra ...
- Tcc学习笔记(二) 安装和配置
1.下载和编译 去repo.or.cz/tinycc.git下载最新的snapshot压缩包, 或者用git命令下载: git clone git://repo.or.cz/tinycc.git . ...
- 深入剖析Kubernetes学习笔记:开篇词(00)
一.关于Kubernetes初学的疑惑 就在这场因"容器"而起的技术变革中,kubernetes项目已经成为容器技术的事实标准,重新定义了基础设置领域对应用编排与管理的种种可能 1 ...
- .NET CORE学习笔记系列 开篇介绍
ASP.NET Core学习和使用了一段时间了,好记性不如烂笔头,通过查阅官网学习文档和一些大神们的博客总结一下.主要路线先总结一下ASP.NET Core的基础知识,然后是ASP.NET Core ...
- 小松之LINUX 驱动学习笔记(开篇)
时间对每个人都是公平的,就看你怎么对待他.每天多努力一点,未来就会轻松一点.作为一名北漂,感受着首都的压力,也曾萌生过逃离北上广的想法,但是,最后我最终还是选择留下来,随着年龄的增长,我已经没有那么多 ...
- (一)tensorflow-gpu2.0学习笔记之开篇(cpu和gpu计算速度比较)
摘要: 1.以动态图形式计算一个简单的加法 2.cpu和gpu计算力比较(包括如何指定cpu和gpu) 3.关于gpu版本的tensorflow安装问题,可以参考另一篇博文:https://www.c ...
- SQL反模式学习笔记5 外键约束【不用钥匙的入口】
目标:简化数据库架构 一些开发人员不推荐使用引用完整性约束,可能不使用外键的原因有一下几点: 1.数据更新有可能和约束冲突: 2.当前的数据库设计如此灵活,以至于不支持引用完整性约束: 3.数据库为外 ...
- SQL反模式学习笔记3 单纯的树
2014-10-11 在树形结构中,实例被称为节点.每个节点都有多个子节点与一个父节点. 最上层的节点叫做根(root)节点,它没有父节点. 最底层的没有子节点的节点叫做叶(leaf). 中间的节点简 ...
随机推荐
- 【转载】Delphi7从子线程中发送消息到主线程触发事件执行
在对数据库的操作时,有时要用一个子线程来进行后台的数据操作.比如说数据备份,转档什么的.在主窗口还能同是进行其它操作.而有时后台每处理一个数据文件,要向主窗口发送消息,让主窗口实时显示处理进度在窗口上 ...
- string相关总结
一 <string> 1 string类常见成员函数 (1)属性相关 s.empty() s为空时返回true,否则返回false s.size() 返回s中字符的个数,不包 ...
- 数据结构与算法(1)支线任务8——Find Median from Data Stream
题目如下:(https://leetcode.com/problems/find-median-from-data-stream/) Median is the middle value in an ...
- Java面向对象㈡ -- 继承与多态
Java的继承是通过extends和implement来实现的,Java不支持多继承,但是Java支持多层继承以及多实现(接口).Java继承有一个关键字super是用来指向父类.Java继承衍生出覆 ...
- delphi.位操作
位操作网上有很多介绍,请上网google/baidu,比如: 位操作技巧实例大全: http://blog.csdn.net/g_spider/article/details/5750665 位操作基 ...
- setContentView R can not be resovled
原因:gen包下没有自动生成R.java的资源文件 解决办法:再次新建android application project,默认Theme为Holo Light With Dark Action B ...
- HTTP头的Expires与Cache-control
HTTP头的Expires与Cache-control 1.概念 Cache-control用于控制HTTP缓存(在HTTP/1.0中可能部分没实现,仅仅实现了Pragma: no-cache) 数据 ...
- hadoop namenpde机制
1:通过查看hadoop的临时目录,看到有fsimage和edit文件 2:fsimage时namenode的元数据内存镜像文件,edit文件时hadoop客户端的操作记录, edit_inproce ...
- 【SSM 8】spring集成Mybatis通用Mapper
上篇博客中介绍了关于Mybatis底层封装的思路问题,那么这篇博客,就介绍一下怎么引入通用的mapper插件. 备注:本项目通过maven管理 关键版本说明: spring:4.1.3.RELEASE ...
- 如何使用THashedStringList
1.添加 uses system.IniFiles 2.实例代码: unit Unit1; interface uses Winapi.Windows, Winapi.Messages, System ...