在 Mac 终端上的 C 编译器中的无限循环中创建并行算术运算符


#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <string.h>
void main (void)
{
while(1) // infinite loop
{
int a, b;
printf("Give me an integer a: ");
scanf("%d",&a);
printf("Give me an integer b: ");
scanf("%d",&b);
sum = &a + &b;
product = &a * &b;
difference = &a - &b;
echo Here is your sum, product, and difference:
printf("Sum: %d + d% = %d.n", a, b, sum);
printf("Product: %d * d% = %d.n", a, b, product);
printf("Difference: %d - d% = %d.n", a, b, difference);
return 0;
}
}

我在第 6 行的 void main(void)不断收到语法错误 使用子进程创建 3 个并行进程。

这个程序有很多问题,它没有并行做任何事情:

void main (void)

这通常会编译,但根据 C 标准,这是不正确的。不需要参数的main()签名应该是int main(void)

sum = &a + &b;
product = &a * &b;
difference = &a - &b;

您使用的是ab地址而不是,因此对于sumproductdifference,您总是会得到相同的结果(除了没有定义最后三个)。正确的版本应该是:

sum = a + b;
product = a * b;
difference = a - b;
echo Here is your sum, product, and difference:

这不是 C 构造,因此编译器会抱怨这一点。使用printf().

return 0;

尽管您已经指出循环应该是无限的,但这并不是因为您在循环结束时退出函数。

最新更新