- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在编写脚本语言,我想复制(相当标准化的)C order of operations.
尽管有一点我从未牢牢掌握为正式概念,但它是关联性。为什么有些运算符组是从左到右,有些是从右到左?
谁能给我举几个例子,说明如果规则都是从左到右或相反的话,一行代码看起来会有什么不同?或者为什么关联性是这样的,因为在我看来这只是一个任意的选择,但我认为他们有它的原因。
另外,请注意,我知道结合性是什么意思,我只是想不出任何从左到右(或反之亦然)比其他选择更好的例子
最佳答案
在大多数情况下,每个运算符都具有对该运算符最有意义的结合性。
所有非赋值二元运算符都具有从左到右的结合性。这很有用,原因很明显,英语是从左到右阅读的,因此 x + y + z
的计算与阅读方式一致。此外,对于算术运算符,语义符合我们对数学运算符用法的预期。
赋值运算符具有从右到左的结合性。从左到右的分配会有奇怪和意想不到的语义。例如,x = y = z
将导致 x
具有 y
的原始值,而 y
具有z
的原始值。预计表达式完成后所有三个变量将具有相同的值。
前缀一元运算符具有从右到左的结合性,这是有道理的,因为最接近操作数的运算符首先求值,所以在~!x
中,!x
首先计算,然后将 ~
应用于结果。如果将前缀运算符应用于从左到右的结合性,那将是真的,真的很奇怪:说 ~!x
意味着评估 ~x
然后将 !
应用于结果与我们对表达式的看法完全相反(或者,至少,大多数人对表达式的看法...)。
关于c - 在基于 C 的语言中,从右到左和从左到右的关联性有什么后果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9058761/
这个问题已经有答案了: Why does the expression a = a + b - ( b = a ) give a sequence point warning in c++? (4 个
有人可以解释以下代码片段的输出行为吗? function Vertex(x, y, z) { this.x = parseInt(x); this.y = parseInt(y);
理论上的输入/输出流运算符关联性: 从左到右 (例如,根据这个:Sait Mary's University website 输入/输出流运算符关联性实践: #include int func0()
根据 Hoogle,>= (bar <=< baz) 无积分,它给了我 bar <=< baz =<< foo 考虑到固定性,这看起来不太正确。 最佳答案 Frege 就像 Haskell,但 Fre
我正在使用任务集工具为我的一个程序设置 CPU 关联性。如何仅在单个 CPU 上设置亲和性 - 因为我对此不确定,所以我这样做: taskset -c 2-2 tests/prog 1 2 3 ...
我搜索了有关 CPU 亲和性的问题/答案并阅读了结果,但我仍然无法让我的线程锁定单个 CPU。 我正在开发一个将在专用 Linux 机器上运行的应用程序,因此我不关心其他进程,只关心我自己的进程。该应
我想知道linux进程是否可以使用默认的亲和性。默认值是 ~0(截断为可用 CPU 的数量),但我希望能够为系统的所有进程设置它。在启动时执行此操作也很好,这样我就可以有效地防止任何进程使用某些 CP
在 C99 标准中,表达式允许优先级和关联性。 优先级被很好地记录下来,因为文档中运算符出现的顺序是降低优先级的,所以函数调用在乘法运算符之前,而乘法运算符又在加法运算符之前。 但是,我找不到关于结合
我想将应用程序设置“ARR Affinity”配置为在通过我们的 ARM 模板配置新的应用程序服务时关闭。我该怎么做? 我找不到任何关于此的信息,这表明目前尚不支持它。 最佳答案 您正在 Micros
我想指定特定 pthread 的 CPU 亲和性。到目前为止我找到的所有引用资料都涉及设置进程(pid_t)而不是线程(pthread_t)的CPU亲和性。我尝试了一些传递 pthread_t 的实验
我在具有 2 个实例的云服务中拥有一个 Web 角色。 我有一个函数在一个实例中创建文件并切换到另一个中间函数,导致 404 错误,因为它找不到文件。 在 Azure Web Apps 中,Azure
F# pipe-forward 可以表示为: let (|>) x f = f x 例如: let SimpleFunction (a : typeA) (b : typeB) (c : typeC)
我有一个 HTTPS 负载均衡器,配置了一个后端服务和 3 个实例组: 端点协议(protocol):HTTPS 命名端口:https 超时:600 秒 运行状况检查:ui-health2 sessi
这个问题已经有答案了: Java thread affinity (5 个回答) 已关闭 6 年前。 有一些第三方库出于许可目的检查 CPU 数量,但没有明显的方式告诉他们“使用 1 个核心”。 为了
我们正在 Heroku 中基于 NodeJS 和 Websockets (MeteorJS) 运行生产操作几个月,使用配置为 session affinity 的 3 个实例。 。现在,我们想要从 H
我是一名优秀的程序员,十分优秀!