Импорт ES6 ведет себя по-разному в зависимости от того, как инициализируется функция

#include <conio.h>
#include <iostream>
using namespace std;

#define KEY_UP 72
#define KEY_DOWN 80
#define KEY_LEFT 75
#define KEY_RIGHT 77

int main()
{
    int c = 0;
    while(1)
    {
        c = 0;

        switch((c=getch())) {
        case KEY_UP:
            cout << endl << "Up" << endl;//key up
            break;
        case KEY_DOWN:
            cout << endl << "Down" << endl;   // key down
            break;
        case KEY_LEFT:
            cout << endl << "Left" << endl;  // key left
            break;
        case KEY_RIGHT:
            cout << endl << "Right" << endl;  // key right
            break;
        default:
            cout << endl << "null" << endl;  // not arrow
            break;
        }

    }

    return 0;
}

выводится следующим образом:

Up

Down

Right

Left

Up

Left

Right

Right

Up

обнаружена клавиша со стрелкой!

0
задан J. Doe 16 January 2019 в 15:49
поделиться

1 ответ

Модуль оценивается только один раз, его экспортируемые переменные по существу образуют единичный объект. Они используются всеми модулями, которые их импортируют.

В вашем первом примере есть одно обещание, которое используется (ну, не совсем, ссылается на ) дважды.
Во втором примере есть одна функция, которая вызывается дважды.

0
ответ дан Bergi 16 January 2019 в 15:49
поделиться
Другие вопросы по тегам:

Похожие вопросы: