学习c而不编译成* .exe?

时间:2013-05-31 16:34:42

标签: c tcc

我拿起了一个小型c编译器(TCC)的副本,所以我可以在工作中做一些c编程。遗憾的是,新的网络安全策略禁止非IT人员下载/保存exe文件。当然,每次我试图编译helloworld.c时,老板都会收到通知我是恶意的haxor ......

我的问题 - 我可以练习c编程的某种c解释器或环境吗?或者某种方法以不同的方式编译我的程序来测试它们而不会无意中绕过安全措施?

3 个答案:

答案 0 :(得分:4)

尝试ideone它为您提供了一个基于Web的前端,可以编译代码并运行它。然后程序的输出打印在页面上。

答案 1 :(得分:1)

现在有许多在线C ++编译器,我见过的最完整的列表是Get Started isocpp.org页面上的那个。

不幸的是Cameau's好像已经消失了。 LiveWorkspace已处于维护模式一段时间,并且不清楚何时返回,这很不幸,因为它有一个简单的界面,当它工作时允许你在gcc之间切换,{ {1}}和clang非常容易。

剩下的那些Stacked-Crooked是最强大的,你有一个完整的命令行可用,你可以保存文件,因此在你的项目中使用多个文件。

intel列表以某种方式遗漏了codepad,虽然与isocpp相当原始但允许您使用boost

godbolt是一个奇怪的人,你不能在那里实际运行你的程序,但它会显示你生成的程序集。虽然您可以在命令行上使用类似的内容在Stacked-Crooked上实现相同的效果:

Stacked-Crooked

您可以使用其他有用的命令行选项,例如g++-4.8 -std=c++11 -S main.cpp && cat main.s 等...

更新

我最近发现Rextester显然是-fdump-tree-original的{​​{1}}测试人员,现在支持regex和许多其他语言。它非常实用,可以进行实时合作,这是一项突出的功能。

答案 2 :(得分:1)

您可以直接从tcc运行代码(如果它是单个文件)而无需创建可执行文件。使用commad行参数-run

在我的系统上,tcc安装在\ Utils \ tcc中。 文件hello.c是一个基本的“Hello World”源文件。

首先我做了一个“dir”,然后在不创建可执行文件的情况下“执行”了源代码,最后创建了另一个“dir”来显示任何内容。

C:\misc>dir
 Volume in drive C has no label.
 Volume Serial Number is BC80-0D15

 Directory of C:\misc

2013-06-03  13:12              .
2013-06-03  13:12              ..
2013-06-03  13:11                86 hello.c
               1 File(s)             86 bytes
               2 Dir(s)  14,364,372,992 bytes free

C:\misc>\utils\tcc\tcc -run hello.c
Hello, World!

C:\misc>dir
 Volume in drive C has no label.
 Volume Serial Number is BC80-0D15

 Directory of C:\misc

2013-06-03  13:12              .
2013-06-03  13:12              ..
2013-06-03  13:11                86 hello.c
               1 File(s)             86 bytes
               2 Dir(s)  14,364,372,992 bytes free

C:\misc>