Я могу записать программу в C или в C++ с двумя основными функциями?
Если один из них статический
и находится в другом исходном файле, я не вижу никаких проблем.
Нет, программа может иметь только 1 точку входа (это main()
). На самом деле, в общем случае, в C.
No, main()
определяет точку входа в вашу программу, и в вашей программе должна быть только одна main()
функция(точка входа).
Честно говоря, ваш вопрос для меня не имеет особого смысла.
. Вы можете иметь две функции с именем main
. Имя ни в коем случае не является специальным и не зарезервировано. Особенностью является функция , и она случайно имеет такое имя. Функция глобальная. Поэтому если вы напишете главную функцию в каком-то другом пространстве имён, то у вас будет вторая main
функция.
namespace kuppusamy {
int main() { return 0; }
}
int main() { kuppusamy::main(); }
Первая функция main
не особенная - обратите внимание, что вы должны явно возвращать
.
Нет. Все программы имеют одну main(), так компилятор и компоновщик компоновки генерируют исполняемый файл, который начинается где-то разумно.
В принципе, у вас есть два варианта:
Пусть main() интерпретирует некоторые аргументы командной строки, чтобы решить, какое именно main вызывать в действительности. Недостатком является то, что у вас будет исполняемый файл с обеими программами.
Создайте библиотеку из разделяемого кода и скомпилируйте каждый главный файл с этой библиотекой. В итоге у тебя будет два исполняемых файла.
Идиомой является отправка на значение argv[0]
. С жесткими ссылками (POSIX) вы даже не теряете дисковое пространство.
Вы можете его записать, и он скомпилируется, но он не будет компоноваться (если только ваш компоновщик не будет компоновщиком)
.Нет, функция main() является точкой входа в вашу программу, так как у вас не может быть двух точек входа, у вас не может быть двух функций main().
.В какой-то совершенно особенной архитектуре, можно. Это относится к ячеечному процессору Cell Processor, где есть главная программа для главного процессора (64-битный элемент PowerPC Processors Element, называемый PPE) и одна или несколько главных программ для 8 различных сопроцессоров (32-битный элемент Synergistic Processing Element, называемый SPE).
.Что вы имеете в виду под "главной функцией"? Если Вы имеете в виду первую функцию, которая выполняется при запуске программы, то Вы можете иметь только одну. (Сначала Вы можете иметь только одну!)
Если Вы хотите, чтобы Ваше приложение выполняло разные задачи при запуске, Вы можете написать главную функцию, которая читает командную строку (например), а затем решает, какую другую функцию вызывать.
Нет, в языке Си нельзя иметь более одной функции main(). В стандартном языке Си функция main() является специальной функцией, которая определяется как точка входа в программу. Не может быть более одного экземпляра ЛЮБОЙ функции, которую вы создаете на языке Си или на любом другом языке, если только вы не указываете различные подписи. Но в случае с функцией main(), я думаю, у вас нет выбора ;)
.Да ; Тем не менее, это специфичная платформа вместо стандарта C, и если вы спрашиваете о том, что вы действительно хотите достичь (вместо этого попытка решения этой проблемы), то вы, вероятно, получите ответы, которые более полезны для ты.