c - 有没有可以同时改变变量的CPU?

标签 c variables

如果我写:

a = 0;
b = 0;
c = 0;
d = 0;
e = 0;
f = 0;

我认为(也许是错误的)CPU 会逐行运行,例如:

CPU says:
let me assign a to 0
then let me assign b to 0
then let me assign c to 0
then let me assign d to 0
etc...

我只是想知道是否有处理器可以同时更改变量...?

谢谢... Y_Y

最佳答案

你所拥有的是一行代码,而不是方法调用。

编辑:针对您编辑过的问题...您需要的是 vector 处理器(下面将详细讨论)。正如我所记得的那样,这个想法是你有一系列的值,你同时对所有这些值重复、并行地执行相同的操作。它们通常用于大规模数学/物理、模拟和图形类型的东西(我认为包括 PC/控制台 3D 图形)。

如果我没记错的话,在 C 中,您可以将多个语句放在一个“代码行”中,如下所示:

int a, b, c;
a = 1, b = 2, c = 3;

然而,这与写作没有什么不同:

int a, b, c;
a = 1; b = 2; c = 3;

这又等同于

int a, b, c;
a = 1;
b = 2;
c = 3;

所有这些在编译器中都转化为相同的东西。因此,虽然其中一个只使用一个语法“语句”,而其中两个写在一行中,但除了语法外,它们都是相同的。

有些语言可以通过一次调用语言的正常基本元素之一生成多个值;例如,在 Lisp 中,您可以使用 maphash 对哈希表的每个元素运行相同的函数,如果该函数再次写回到哈希表,那么一个“代码行”正在写入许多值。但这是一种毫无意义的措施,因为那一行代码在幕后运行了很多东西。

可能一个更好的例子是某些并行编程模型。 vector 处理器旨在让您同时并行地在 (4/8/16/N) 个不同的数据元素上运行一条指令;您可以有意义地说它正在做您要问的事情,但是您需要学习如何为 vector 机编写汇编代码。此外,一些并行编程模型假设您有一段并行代码同时在 N 个线程中运行,从 N 组不同的输入数据开始,并为每组计算正确的输出。该模型的任何实现都应该能够保证不同的执行在代码的特定点“聚集在一起”,所有的东西都会同步,并且它们可以读取其他进程的数据并对其采取行动。

所以,嗯,是的,这可以是一个非常简单的问题,也可以是一个非常深刻的问题,具体取决于您想深入到兔子洞的深处。

关于c - 有没有可以同时改变变量的CPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1615676/

相关文章:

将缓冲区转换为结构指针

c++ - 在另一个文件中使用 lex 生成的源代码

javascript - JavaScript闭包如何工作?

perl - 什么时候需要我们的关键字?

php - 如何在 PHP 中将变量重置为 NULL?

java - 如何将jsp页面中的javascript变量传递到另一个java文件?

将具有结构成员的结构复制到另一个结构

c - 嵌入式开发的 Pin Mask 约定

python - 为什么要替换原始图像矩阵值?

c - 将变量乘以另一个变量?