compiler-construction相关内容
目前我开发了几个C程序对利用X code我的Mac。然而,有1的问题。我的学习要求我通过编码来使用某种输入栏。因此,例如,如果用户想要以运行该程序的10倍或希望程序来创建10的答案。我使用“的atoi(ARGV [1])”只是为了获取用户输入。 这正是问题。当我运行程序,它只是开始的错误,这是正常的我quess,因为他正在等待输入,而不是接受它或别的东西。反正我试图解决这个问题,此链接:
..
我已经张贴了这个问题了作者的网站,但我想我会问这里。 我一直在试图安装在此设置pylzma: Windows 7的64 的Python 2.6.6 64 AMD64位编译器从Windows Server 2003来SDK 克隆git的回购的git://github.com/fancy$c$c/pylzma.git 通过一个简单的的easy_install pylzma 我得到这
..
返回类型经常检查是否存在错误。但是,在code,将继续执行可以以不同的方式来指定。 如果(!RET) { doNoError code(); } 出口(1); 或如果(RET) { 出口(1); } doNoError code(); 单向重量级的CPU可以推测使用简单的统计靠近接近/地区所采取的分支 - 我研究了分支预测的4位机制(-2,-1,0,+ 1,+ 2)其中零为未
..
让承担, B 是 _int64 变量。 需要计算的sqrt((长双)一)* SQRT((长双)B)高precision 80位浮点。 为例。 (__的Int64)(开方((长双)一)* SQRT((长双)一)+ 0.5)!= A 在很多情况下是应该的。 的win32哪个C / C ++编译器可以管理80位浮点运算? 解决方案 您可能不应该使用浮点取一个整数的平方根时,要特别长双这
..
我在DialogBlocks 5.03的一个项目,编译与mingw32的罚款,但使用$ C $ 13.12的cblock显示这个错误:F:\\wxWidgets-3.0.0\\lib\\gcc_lib/libwxmsw30u_core.a(corelib_msw_listctrl.o):listctrl.cpp:(.text+0x1019):未定义的引用`ImageList_GetImageCou
..
请看看我的codeS低于 的#include<&stdio.h中GT;无效printOut的() { 静态INT I = 0; 如果(ⅰ小于10) { printOut的(一); } }INT主(INT ARGC,CHAR *的argv []) { 返回0; } 我想应该有一个错误,由于我调用不存在的功能prototype.Actually中,code。与mingw5编译
..
我有一些移植现有的C code到 IEC 61131-3 兼容的PLC。 我有分裂code成离散的功能块和编织这些块成标准溶液(梯,FB,结构化文本等)的一些选项。但是这需要以建立每个功能块雕刻备份C code。 当在IEC规格看着我realsied的 IEC指令列表形式可能是一个目标语言的编译器。该wikepedia文章列出了两个开发工具: $ C $坐标系 Beremiz 但
..
我写一个简单的code,当我试图理解函数调用。但我不明白它的输出。 的#include<&stdio.h中GT;为int *富(INT N) { 为int * p =&放大器; N; 回磷; }INT F(INT米) { INT N = 1; 返回999; }INT主(INT ARGC,CHAR *的argv []) { INT NUM = 1;
..
我已经花了很多时间研究PHP解析器如何工作的: 其转换PHP code,最终C $ C $角 但如何公司的C code转换为可执行文件? BTW,如何判断是否语言A可以从数学方面以某种方式转化为B语言? 解决方案 这是一个真正伟大的,真正深刻的问题上有很多计算机科学的部分绘制。 最后,一台电脑上的所有程序发出指令,机器code中的处理器上执行。没有一个“机器code”和每个处理器有
..
我注意到,有大量的C编译器发出警告时,在的的printf / sprintf函数,格式字符串中的转换说明不匹配的类型或相应参数的数量。 在我看来,像一个概念性的突破,因为C没有根据语言规范有内置的功能。 全部编译器应该知道的printf / sprintf的是他们的原型,而不是它们的语义。我知道的printf / sprintf的是标准的C函数,但但他们驻留在独立的库libc,你必须包括s
..
我使用Windows 7-64位。 用Borland C ++ 5.5是行不通的。 测试文件HELLO.C #包括LT&;&stdio.h中GT;INT主要(无效) { 的printf(“世界,你好\\ N!”); 返回0; } 错误E2209 HELLO.C 1:无法打开包含文件'stdio.h中“结果 警告W8065 HELLO.C 5:调用函数'printf
..
如何在C / C ++编译器操纵源$ C $ C转义字符[“\\”]?如何编译器的语法来处理这个角色写的?什么是编译器遇到此字符后怎么办? 解决方案 大多数编译器分为部分:编译器前端被称为的词法分析器或扫描仪。编译器的这部分读取实际的字符并创建令牌。它有一个状态机,它决定,在看到一个转义字符,是否是正品(例如,当它出现在字符串中),或者修改一个字符。令牌是输出相应的转义字符或其他一
..
我需要为C编译器,例如附加选项添加标志来打开所有的警告,这取决于编译器的类型。例如。对于MSVC我应该使用 env.Append(CPPFLAGS =“/墙”) 但MinGW的(GCC)我需要使用: env.Append(CCFLAGS =“-Wall”) 我怎样才能做到这一点scons的方式? 解决方案 您可以只检查编译器的名称: CC = ENV ['CC'] 如果CC =
..
我要实现用C高阶函数(HOFs)与最小的努力语法糖。 例如,对于以下code 函数add(INT X){ 返回INT(int y)对{ 返回X + Y; }; }诠释主(){ 功能ADD1 =添加(1); 返回ADD1(2); } 是 transcompiled 的成纯C作为的#include<&stdlib.h中GT;typedef结构{ 无效* CTX
..
旧的gcc版本(例如4.0.2或4.1.2)有选择 -df (见
..
要评论我在这里让我停下来想一想的响应:“我真的不知道的C99支持状态是什么” 维基百科给出的细节了几个编译器,但我没有足够的熟悉C99知道所有的比特,标准件,所以我在寻找一个完形概述问题的答案: 什么是C99支持国家重大的编译器/工具链? 解决方案 MSVC:故意不执行,除非它用C ++重叠 GCC:最有用的部分都在(并已一段时间)。一些缺少的功能。 铛:索赔完整的C99支持
..
最近我发现,声称这篇文章这个想法到preFER 为(;;)在而(1)来是因为C编译器最初可在PDP-11产生的额外机器指令而(1)。 顺便说一句,现在连的Visual C ++警告倾向于前者。 如何现实是这样的归属(;;)成语? 解决方案 下面是什么V7的Unix编译器 CC 生产(使用的 SIMH 并从的 TUHS ): $猫>交流转换器 主要(){ 而(1); } $猫
..
我曾经遇到过一个工作(与XLC8和MSFT9编译器)件code,含有与C键和一个引用参数定义的函数的C ++文件。这个错误我,因为引用仅限于C ++。有问题的功能是从C code,其中它被声明为代替引用参数取指针参数为相同的类型,称为 简单的例子 的 C ++文件的: 的extern“C”无效F(INT&安培; I) { 我++; } 的 C文件的:无效F(INT *);诠释的m
..
我刚安装MinGW和bin文件夹,我可以看到7的.exe文件编译我的程序: C ++。exe文件 先按g ++。exe文件 的mingw32-C ++。exe文件 的mingw32-G ++。exe文件 gcc.exe 的mingw32-gcc.exe 的mingw32-GCC-4.4.1.exe 我的小程序(testprog.cpp)与他们每个人的编译正确;在 A.EXE
..
创建解析树后,我现在来填充符号表。 我要存储信息,如 类型,范围,对于标识符偏移等。 现在我怎么知道是什么类型,标识符的范围,因为我所知道的是该特定ID词位值和行号(词法分析后)。 我如何得到对整个事情。谢谢。 解决方案 现在我怎么知道是什么类型,标识符的范围,因为所有的我 知道的是语义值和行号为特定ID(后 词法分析)。 由于EJP提到的,你需要通过一步解析树。你的
..