标签: expression-evaluation

C中的AND/OR链

我对此非常肯定,但为了安全起见:

C标准是否保证AND链(A && B && ...)从左到右进行评估,一旦有0,评估就会停止?

OR的问题相同.(只要有1)

我可以依靠其他C风格的语言吗?

这段代码是否安全:

if (somePtr!=NULL && somePtr->someMember==123)
{
     ...
}
Run Code Online (Sandbox Code Playgroud)

c expression-evaluation

2
推荐指数
1
解决办法
162
查看次数

c ++,用多个`&&`来计算表达式,没有低优先级的运算符

如果表达式计算多个&&运算符,并且不计算任何较低优先级的运算符(例如||,?:),那么只要其中一个&&s返回0,表达式是否会计算为0,还是会完成对剩余&&s的计算?

例如,

q=0; w=1; e=1; r=1;
if(q && w && r && e) {}
Run Code Online (Sandbox Code Playgroud)

if()一旦q && w评估为0,这将评估为false (因为&&无论右手操作符如何,其余的必须全部评估为0)?

c++ evaluation expression expression-evaluation operator-precedence

2
推荐指数
1
解决办法
1676
查看次数

从字符串描述构建布尔函数

我有一个庞大的布尔值数据库,并希望构建一个框架,以便在所有值上轻松运行查询.为此,我想编写一个函数,给定一个布尔表达式的字符串表示,将在数据库的所有元素上计算该表达式.例如,给定输入

(a && b) || c
Run Code Online (Sandbox Code Playgroud)

该函数将构造另一个将要评估的函数

return (funcA() && funcB()) || funcC();
Run Code Online (Sandbox Code Playgroud)

其中funcA,funcB和,funcC是和功能返回布尔值

c# algorithm parsing expression-evaluation

2
推荐指数
1
解决办法
1557
查看次数

如何向Ncalc添加新功能

我在我的新项目中使用Ncalc,它几乎已经拥有了我需要的一切.

我说几乎所有的东西,因为现在我需要扩展一些功能,并添加新的功能,例如:nth root,random等

你知道是否有人已经实现了这些功能吗?或者你可以给我任何提示或指南来扩展Ncalc的功能列表???

提前致谢.

c# expression-evaluation ncalc

2
推荐指数
1
解决办法
5771
查看次数

2
推荐指数
1
解决办法
46
查看次数

Delphi 调试 - 在评估时我可以显示字段名称,而不仅仅是值吗?

Ctrl当我用+评估变量时F7,使用简单变量就可以了。但是,当我有更复杂的事情时:

Delphi 评估/修改对话框

...有什么方法可以显示与这些值对应的字段名称吗?

delphi debugging expression-evaluation

2
推荐指数
1
解决办法
74
查看次数

++ i + i ++评估

由于这篇文章,混乱上升了.作者更新了他的帖子,结果变得清晰. 结论:Java 从左到右评估表达式

关闭!

由于表达式的评估是从右到左完成的,因此以下代码应存储5j:

int i=2;
int j=++i+i++;
System.out.println(j);
Run Code Online (Sandbox Code Playgroud)

但是我得到6作为输出,这迫使我重新思考左右评价的想法.请在这里解释一下理论.

java expression-evaluation unary-operator

1
推荐指数
2
解决办法
2477
查看次数

JavaScript(1)和1之间的歧义

(1)和1之间有什么区别.

1.toString() //Will throw error
1.toFixed(1) //Will throw error
(1).toString() // output "1"
(1).toFixed(1) // output 1.0
Run Code Online (Sandbox Code Playgroud)

javascript expression-evaluation javascript-engine

1
推荐指数
1
解决办法
53
查看次数

在Scheme中,`(begin)`的返回值是多少?

我知道它将(begin expr1 expr2 ...)评估所有表达式并返回最后评估的表达式。

我发现在 Chez Scheme 中允许使用begin不带表达式的形式,如下所示:(begin)。我正在使用 Chez Scheme 作为我学习的一部分。当我在控制台中写入时,(begin)它不会发送语法错误,它只是显示任何内容,就好像我收到了void.

我的问题是,那么会返回什么?

我以为这是你可以通过运行获得的 void 对象(void)。然而,当我测试它时,我意识到事实并非如此。

我正在学习 Chez Scheme 作为我正在学习的编译器课程的一部分,我需要实现可以处理特殊单词 的编译器的一部分begin。所以我需要知道为什么这是可能的以及这个函数返回什么。

编辑:

我正在添加有关此主题的链接。我无法完全理解答案。另外,他没有提到返回类型。

compiler-construction scheme language-implementation expression-evaluation chez-scheme

1
推荐指数
1
解决办法
403
查看次数

汇编语言中的表达式堆栈是什么意思?

我一直在使用教科书来学习汇编语言。我不是在上课,我只是想学汇编语言。在本章末尾,术语之一是“表达式堆栈”。这本书在明确定义关键术语方面往往很差,我无法弄清楚这个术语的确切含义。有人能给我一个相当简洁、直接的解释吗?谢谢你。

为了澄清,这里有更多信息:这一章称为“浮点处理和指令编码”,该部分是关于 FPU 寄存器堆栈的。它提到了这一点:“在后缀表达式的评估过程中,堆栈保存中间值。” 我想知道这是否意味着“表达式堆栈在后缀表达式的评估过程中保存中间值”

compiler-construction assembly stack expression-evaluation

1
推荐指数
1
解决办法
106
查看次数