Во-первых, да. При этом и запускающая программа должна иметь возможность передать запускаемой какую-то информацию, и запускаемая программа должна иметь возможность вернуть в ответ статус выполнения - хотя бы успешно выполнилась или нет. Сюда просится нечто, что имеет параметры (args) и возвращаемое значение (return). В C++ это либо функция, либо нечто на порядок более сложное (например, класс с полями и опять же функцией). Либо же нечто специально добавленное в язык для этой конкретной задачи. Так не делают Во-вторых, код программы может быть разделен на несколько файлов. Если ты впервые получил этот код и хочешь в нем разобраться, то возникнет вопрос, с какого вообще файла начинается выполнение программы. Ищешь по файлам слово "main(" и находишь.