compiler-construction相关内容

SASS 或 LESS 包装

我希望能够从不同的目录导入我的 scss 或更少的文件(无论哪种语言都无关紧要).我的电脑上的目录是这样的: apps/myapp/includes/css/ & framework/2.3/lib/framework/2.3/css 我试图避免 .scss 或 .less 文件中的相对路径来导入它们.我试图找到一个程序或一种我猜测打包文件的方式,而不必在 scss 或更少文件的 @imp ..
发布时间:2022-01-17 08:42:04 其他开发

创建一个单独的“布尔表达式";动态语言规则

我正在 Bison 中为一种简单的动态类型语言创建语法.我有一个“通用"expression 规则,它有点类似于 C 中右值的概念;表达式出现在赋值的右侧,它们也可以作为参数发送给函数等.规则的一个大大简化的版本如下: 常量表达式: TOK_INTEGER_CONSTANT|TOK_FLOAT_CONSTANT|字符串字面量;表达: 常量表达式|标识符|布尔表达式|booleanExpressi ..

C不是运算符应用于int?

我有 int x = 5;printf("%d", x);//我得到 5... 预期x = !x;printf("%d", x);//我得到 0... 嗯 5 二进制是:0101如果我们对每个位进行逆运算,我们应该得到 1010,但 ! 不一定是反相器,它是一个逻辑运算符.为什么我得到一个 0 ? 是因为在 C 中,正数被视为真,所以 !-ing 它会导致 0?这个编译器是特定的吗? ..
发布时间:2022-01-17 08:41:51 C/C++开发

未解决的包含:<iostream>在 mac 上的日食中

Eclipse 不允许我包含 .我在 Mac 上,当我使用 xcode 尝试同样的事情时,它可以工作.我正在运行 eclipse Indigo,我已经尝试了 MAC OS X 编译器选项和跨平台编译器选项. 解决方案 我通过手动将 iostream 的路径添加到我的项目来解决这个问题: 右击项目 -> 属性 -> C/C++ 常规 -> 路径和符号 -> GNU ..
发布时间:2022-01-17 08:41:45 Java开发

无法编译项目,缺少 io.h 文件

我无法为具有 Windows Mobile(基于 Windows CE)操作系统的移动设备编译 C++ 项目,并且 Visual Studio 中的 Visual C++ 编译器失败并显示: 错误 1 ​​致命错误 C1083:无法打开包含文件:'io.h' 编辑 我正在尝试编译 SQLite 合并,shell.c 文件包含对此 io.h 的调用,但文件中缺少 io.h. 我用谷歌搜索 ..
发布时间:2022-01-17 08:41:39 C/C++开发

什么范围的机器的二进制兼容性?

我用 C 语言编写了一个简单的程序,并在 Ubuntu 上使用 GCC 编译它.这个文件可以在另一台机器上工作吗? 输出二进制文件的内容及其外部依赖项是什么? 能否在其他 Linux 发行版上运行,在什么情况下运行? 可以在其他操作系统上运行吗? 解决方案 二进制不兼容有几个级别/来源. 首先解决库不兼容问题 通常,如果您在另一台机器上运行二进制文件,使用不同版本的“ ..
发布时间:2022-01-17 08:41:29 其他开发

优化的 c++ 编译器如何重用函数的堆栈槽?

优化的 c++ 编译器如何确定函数的堆栈槽(函数堆栈帧的一部分)何时不再需要该函数,以便它可以重用其内存?. 堆栈槽是指函数堆栈框架的一部分,不一定是函数的整个堆栈框架,一个澄清问题的例子是,假设我们有一个函数,它的范围内定义了六个整数变量,时间到了在函数中使用第六个变量,第五个变量变得无用,因此编译器可以为第五个和第六个变量使用相同的内存块. 感谢您提供有关此主题的任何信息. 解决方案 ..
发布时间:2022-01-17 08:41:10 C/C++开发

条件运算符 (>?=) 的奇怪用法

我正在查看一些代码并看到类似这样的内容: int d = 1;int 更大的东西 = 2;d >?= 更大的东西;cout 我认为这应该输出 2.但我什至不能用 gcc 4.5.2 编译它.该代码是在 2005 年编写的,并使用 gcc 3.4.4 编译(不是 100% 确定). 谁能解释一下它是如何工作的以及为什么我不能用最近的编译器编译它. 解决方案 这是“最大"赋值运算符 ..
发布时间:2022-01-17 08:40:54 C/C++开发

是否可以关闭对“和"的支持?/“或"gcc中的布尔运算符用法?

GCC 似乎允许使用“and"/“or"代替“&&"/“||"在 C++ 代码中;但是,正如我所料,许多编译器(尤其是 MSVC 7)不支持这一点.GCC 允许这样做的事实给我们带来了一些烦恼,因为我们有不同的开发人员在多个平台上处理相同的代码库,并且偶尔,当人们在 Python 和 C++ 开发之间来回切换时,这些“错误"就会溜进来. 理想情况下,我们都会记得使用适当的语法,但是对于那些我 ..
发布时间:2022-01-17 08:40:29 C/C++开发

MoveInsertable 和 CopyInsertable 之间的区别?

有人可以对这两个术语提供更清晰的解释吗? 换句话说,请用例子做一些简单的解释. (来自:cppreference.com) MoveInsertable : 指定一个类型的右值可以复制到未初始化的存储中. CopyInsertable :指定一个实例type 可以在未初始化的存储中就地复制构造. 解决方案 这些需求是类型 T 和容器 X 之间的关系.容器有一个分配器 ..
发布时间:2022-01-17 08:40:20 C/C++开发

如何检查 JIT 编译器是否在 Java 中关闭

我想知道如何检查 JIT 编译器是否已关闭.我有以下代码,旨在关闭 JIT 编译器.问题是,我不确定它是否真的这样做.所以我想知道是否有办法检查 JIT 是否关闭.我查看了 Compiler 类,但没有像 isDisabled/enabled() 这样的方法. 代码: Compiler.disable(); 任何帮助或指导将不胜感激. 解决方案 我不相信你可以在运行时关闭 JIT ..
发布时间:2022-01-17 08:40:13 Java开发

是否可以将整个数组保存在 cpu 寄存器中

在下面的代码中, int main(){注册 int arr[4];/* ... */} 'arr' 是否有可能在某个 cpu 寄存器中分配.(考虑 cpu 有 4 个或更多寄存器). 否则编译器将忽略 register 数组的存储类. 解决方案 据我了解,答案是YES和NO. 没有因为, 任何数组元素都必须是可显式寻址的(例如,对于 16 位 uC/uP,其地址应始 ..

带有方法重载和枚举的奇怪(可能是错误的?)C# 编译器行为

今天我发现了一个非常奇怪的 C# 函数重载行为.当我有一个具有 2 个重载的方法,一个接受 Object 而另一个接受任何类型的 Enum 时,就会出现问题.当我将 0 作为参数传递时,将调用该方法的 Enum 版本.当我使用任何其他整数值时,将调用 Object 版本.我知道这可以通过使用显式强制转换轻松解决,但我想知道编译器为什么会这样.这是一个错误还是只是我不知道的一些奇怪的语言规则? ..
发布时间:2022-01-17 08:39:59 C#/.NET

当 sizeof(char) != 1 时 C 中的字节精度指针算术

如何以单字节精度便携地执行指针运算? 请记住: char 在所有平台上都不是 1 字节 sizeof(void) == 1 仅在 GCC 中作为扩展提供 虽然某些平台可能有指针 deref 指针对齐限制,但算术可能仍需要比最小基本 POD 类型的大小更精细的粒度 解决方案 您的假设是有缺陷的 - sizeof(char) 被定义 为 1. 来自 C99 标准 (TC3 ..

使用 Flex 检测和跳过行注释

如何在 Flex 中检测像 // 这样的一行注释并跳过这些行? 另外,对于 /* 注释,以下代码段是否足够? "/*" { 评论();}%%评论(){字符 c, c1;环形:而 ((c = input()) != '*' && c != 0)putchar(c);if ((c1 = input()) != '/' && c != 0){输出(c1);转到循环;}如果 (c != 0)pu ..
发布时间:2022-01-17 08:39:21 其他开发

所有 C++ 编译器都生成 C 代码吗?

可能是一个相当模糊和广泛的问题,但所有 C++ 编译器是否都先将代码编译成 C 再编译成机器代码? 解决方案 由于 C 编译器几乎无处不在,并且几乎在每个平台上都可用,因此许多(已编译)语言在开发过程中都会经历这个阶段以引导该过程. 在语言开发的早期阶段,要查看该语言是否可行,最简单的获得工作编译器的方法是构建一个编译器,将您的语言转换为 C,然后让本地 C 编译器构建实际的二进制文 ..
发布时间:2022-01-17 08:39:07 C/C++开发

以编程方式将资源嵌入 .NET 程序集中

我有一个已编译的 .NET 程序集,其中嵌入了一个特定的资源文件(名为“Script.xml").我需要以编程方式将其更改为另一个. 不从源代码重新编译是否可以做到这一点? 目前,我搜索我知道文件中的文本,它运行良好.但是我需要为另一个我不知道资源文件的任何内容的项目这样做,我需要找到另一种方法. FileStream exe = new FileStream(currentexe, ..
发布时间:2022-01-17 08:38:37 C#/.NET

如何在脚本中验证 CSS?

是否有可以验证 CSS 的库? 我能找到的唯一工具是网站.如果其中一个网站有 API,那也符合要求. 我有一个用作 CSS 编译器的脚本.它根据主题的设置设置各种变量,并生成和写入 CSS 文件.在着手编写 CSS 文件之前,我想对其进行验证以确保没有任何无效条目. PHP 会很方便,但 Python、Perl、Ruby、Java 或任何可从 shell 执行的东西都可以. ..
发布时间:2022-01-17 08:38:31 PHP