8cc

小型的 C 编译器
授权协议 MIT
开发语言 C/C++ Python
所属分类 开发工具、 C/C++开发工具
软件类型 开源软件
地区 不详
投 递 者 杨彦君
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

8cc 是一个小型的 C 编译器,它旨在支持所有C11语言功能,同时使代码尽可能的小而简单。

编译器可以自行编译。您可以将其代码视为C语言的实现,以及该编译器可以编译的示例。

8cc的源代码经过精心编写,以尽可能简洁和易于阅读,因此该源代码成为学习编译器中使用的各种技术的良好学习材料。您可能会发现词法分析器,预处理器和解析器对于了解如何在每个阶段处理C源代码已经很有用。

它不是一个优化的编译器。生成的代码通常比GCC慢2倍或更多。我计划在将来实现合理的优化水平。

8cc仅支持x86-64 Linux。在修复所有已知的错误编译并实现优化通过之前,我没有计划使其可移植。从2015年起,我将Ubuntu 14用作开发平台。不过,它应该可以在其他x86-64 Linux发行版上运行。

注意:不要对此编译器抱有很高的期望。如果您尝试编译除编译器本身以外的程序,则很有可能会看到编译错误或编译错误。这基本上是一个单人项目,到目前为止,我仅花了几个月的业余时间。

  • atexit C 库函数 int atexit(void (*func)(void)) 当程序正常终止时,调用指定的函数 func。您可以在任何地方注册你的终止函数,但它会在程序终止的时候被调用。   setbuf C 库函数 void setbuf(FILE *stream, char *buffer) 定义流 stream 应如何缓冲。该函数应在与流 stream 相关的文件被打开时,且还未发

  • CCS8 下 CC1310SimpleLink SDK 的GPIO配置使用流程。 第一步:配置GPIO口 GPIO_setConfig(uint_least8_t index,GPIO_PinConfig pinConfig); //index:要配置的IO口 //pinConfig:设置IO口的模式,不同参数可用“|”运算符 第二步:配置中断(也可以不用配置) GPIO_setCallback

  • 47304402204fddca90b0ddb8e1e148f72f703ad50eff281ac9069f25f584811274c3ad036e02200c8beb82f12f2e28b92d3b0d80572c9715b06fdc95accdc0586010ff357b93e94121020a024484b68735e94783ef963a1baddce9623acc36f08e54c1c7

  • 一、 CC攻击的原理:   CC攻击的原理就是攻击者控制某些主机不停地发大量数据包给对方服务器造成服务器资源耗尽,一直到宕机崩溃。CC主要是用来消耗服务器资源的,每个人都有这样的体验:当一个网页访问的人数特别多的时候,打开网页就慢了,CC就是模拟多个用户(多少线程就是多少用户)不停地进行访问那些需要大量数据操作(就是需要大量CPU时间)的页面,造成服务器资源的浪费,CPU长时间处于100%,永远都

  • 目录 1. 功能介绍 2. 硬件接线介绍 2.1 DS18B20温度传感器 2.2 ESP8266 WIFI模块 3. 案例代码

  • 1什么是CC-Link?   CC-Link全称Control & Communication Link,即控制与通信链路通信,是一种可以同时高速处理控制和信息数据的现场网络系统,可以提供高效、一体化的工厂和过程自动化控制。融合了控制与信息处理的现场总线的CC-Link是一种信息化的网络,它具备高实时性、分散控制、与智能设备通信、RAS、提供开放式的环境等特点。   在1996年11月以三菱电机为

  • 此程序用到了CC2530的串口,定时器中断,外部中断。 此程序实现功能: ZigBee模块上电后LED1亮,LED2灯灭。 第一次按下SW1按键并放开,经过5秒后,LED1灭,再经过1秒后LED2亮,然后LED1和LED2能以流水灯的方式进行亮灭:LED1亮—>LED1灭 LED2亮—> LED2灭 LED1亮。 第二次按下SW1后LED1和LED2全亮。 再一次按下SW1时能重复(2)和(3)的

 相关资料
  • 本文向大家介绍解析C语言与C++的编译模型,包括了解析C语言与C++的编译模型的使用技巧和注意事项,需要的朋友参考一下 首先简要介绍一下C的编译模型: 限于当时的硬件条件,C编译器不能够在内存里一次性地装载所有程序代码,而需要将代码分为多个源文件,并且分别编译。并且由于内存限制,编译器本身也不能太大,因此需要分为多个可执行文件,进行分阶段的编译。在早期一共包括7个可执行文件:cc(调用其它可执行文

  • 问题内容: 我想知道为什么我们通过编译显示“ Hello,World!”的.c文件得到.o文件。是否大于Java .class文件,该文件也显示“ Hello,World!”? 问题答案: Java使用字节码来独立于平台并进行“预编译”,但是字节码由解释器使用并且被提供为足够紧凑,因此您在已编译的C程序中看到的机器代码并不相同。只需看一下Java编译的完整过程即可: 这是Java程序到机器代码转换

  • constexpr-8cc: Compile-time C Compiler constexpr-8cc is a compile-time C compiler implemented as C++14 constant expressions.This enables you to compile while you compile!This project is a port of 8cc

  • 当我从Eclipse构建到maven构建时,我发现了项目中的许多问题。我使用2.5.1编译器插件。 JDK是开放的-JDK-7 我在一个新项目中隔离了这个问题,并对其进行了深入研究。问题是: 这无法使用javaC进行编译(但在Eclipse中工作),并说明以下错误: [错误]无法执行目标组织。阿帕奇。专家插件:maven编译器插件:2.5.1:项目测试时编译(默认编译):编译失败 [错误]/hom

  • 本文向大家介绍C++ 用Clang编译,包括了C++ 用Clang编译的使用技巧和注意事项,需要的朋友参考一下 示例 由于锵前端被设计为是与GCC兼容,当你交换可通过GCC编译大多数程序将编译g++通过clang++在构建脚本。如果没有-std=version给出,将使用gnu11。 习惯了MSVC的Windows用户可以cl.exe与交换clang-cl.exe。默认情况下,clang尝试与已安