嵌入在函数中的C ++函数反向运行?

时间:2016-04-18 14:47:58

标签: c++ function reverse

对不起,如果这看起来像个愚蠢的问题。我确定你们都知道为什么会这样,但在我的代码中为(C ++)提供了函数

int result = calculateResult(getUserInput1(), getMathematicalOperation() , getUserInput2())

功能' getUserInput2()'首先运行而不是“getUserInput1()”。当嵌入另一个函数时,C ++中的函数是否正常运行?

完整代码位于

之下
// SimpleCalculator.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"

#include <iostream>

int getUserInput1()
{
    std::cout << "Please enter an integer 1: ";
    int value;
    std::cin >> value;
    return value;
}

int getUserInput2()
{
    std::cout << "Please enter an integer 2: ";
    int value;
    std::cin >> value;
    return value;
}

int getMathematicalOperation()
{
    std::cout << "Please enter the operator you wish to use (1 = +, 2 = -, 3 = *, 4 = /): ";
    int op;
    std::cin >> op;

    std::cout << "the operator number you chose is : " << std::endl << op << std::endl;

    return op;
}

int calculateResult(int x, int op, int y)
{
    if (op == 1)
        return x + y;
    if (op == 2)
        return x - y;
    if (op == 3)
        return x * y;
    if (op == 4)
        return x / y;

    return -1;
}

void printResult(int result)
{
    std::cout << "Your result is : " << result << std::endl;
}

1 个答案:

答案 0 :(得分:3)

是的,这是正常的。

严格来说,评估顺序是未指定,这是该规则的常见结果。

这可能看起来有些愚蠢,但我认为它很好,因为它真的很麻烦你不应该依赖任何特定的顺序,最不重要的是你可能假设的最左边的第一顺序原本。

如果您需要特定的评估订单,请先将调用结果存储在变量中。