Как написать программу quine без main () - PullRequest
1 голос
/ 21 февраля 2011

Я прошел через всевозможные проблемы с квиной, но моей задачей было получить проблему с квиной без main(), и петли также запрещены.

Без цикла это легко, но я не могупонять, как написать один без main().Кто-нибудь может мне помочь или предоставить ссылку?

Ответы [ 3 ]

3 голосов
/ 21 февраля 2011

Вы не можете создать (отдельно стоящую) программу на C без функции main().Таким образом, создание quine в C без main() невозможно в обычном смысле.

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

1 голос
/ 21 февраля 2011

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

Да, но играя с некоторыми трюками с препроцессором вы можете сделать это, но это не очень хороший способ сделать это.

http://www.gohacking.com/2008/03/c-program-without-main-function.html

Это может помочь вам.

Взгляните сюда тоже:

Требуется ли main () для программы на C?

0 голосов
/ 21 февраля 2011
#include <stdio.h>

int
foo(void) {
        printf("pong!\n");
        return 0;
}

int main() __attribute__((weak, alias("foo")));

Существует объявление main (), но не определение.

...