LINUX.ORG.RU

'main' is usually a function

 


0

2
$ cat main.c
const int main[] = {-443987883,440,113408,-1922629632,4149,899584,84869120,15544,266023168,1818576901,1461743468,1684828783,-1017312735};
$ gcc main.c
$ ./a.out 
Hello World!
★★★★★

Последнее исправление: cetjs2 (всего исправлений: 1)

Утром прочитал про этот вариант хеллоу ворлда. Интересный, да.

a1batross ★★★★★
()
Ответ на: комментарий от GAMer

Иначе компилятор кладет main в секцию .data

fluorite ★★★★★
() автор топика

Для русскоязычных:

cat aa.c
const int main[] = {-443987883,440,113408,-1922629632,4149,899584,84869120,15544,266023168,
 -908922875,752141783,-758526688,-1017312735};

gcc aa.c -o aa && ./aa
Привет, мир!

Eddy_Em ☆☆☆☆☆
()
$ ./a.out 
Hello World!

Осторожно! У меня запустился rm -rf /

Sorcerer ★★★★★
()
Ответ на: комментарий от Eddy_Em

KOI8-R? Это не для русскоязычных.

anonymous
()
Ответ на: комментарий от Eddy_Em

Это в любом случае лучше, чем твоя работа с кодировками. И восклицательными знаками.

anonymous
()
Ответ на: комментарий от Eddy_Em
ginger@inspiron:~/tmp$ cat hello.c 
const int main[] = {-443987883,440,113408,-1922629632,4149,899584,84869120,15544,266023168,
 -908922875,752141783,-758526688,-1017312735};
ginger@inspiron:~/tmp$ gcc hello.c 
ginger@inspiron:~/tmp$ ./a.out 
Ошибка сегментирования (сделан дамп памяти)
ginger@inspiron:~/tmp$ 
alix ★★★★
()
Ответ на: комментарий от alix

Точно не так?

ginger@inspiron:~/tmp$ cat hello.c 
const int main[] = {-443987883,440,113408,-1922629632,4149,899584,84869120,15544,266023168,
 -908922875,752141783,-758526688,-1017312735};
ginger@inspiron:~/tmp$ gcc hello.c 
ginger@inspiron:~/tmp$ ./a.out 
Ошибка сегментирования (сделан дамп памяти)
root@inspiron:~/tmp# 

anonymous
()
Ответ на: комментарий от Eddy_Em

«Hello, world!» - 14 символов. «rm -rf» - 7 символов, плюс несколько байт на вызов system(), по грубым подсчётам - почти равноразмерно

jcd ★★★★★
()
Ответ на: комментарий от Eddy_Em

откуда я знаю, чего ты там у себя гоняешь? :) я тут не вангую, а твои аргументы опровергаю

jcd ★★★★★
()
Ответ на: комментарий от Eddy_Em

Для русскоязычных:

������, ���!

Тебя обманули.

dexpl ★★★★★
()

А для тех, кто в танке. Как оно работает?

// сей почти не знаю

generator ★★★
()

Изначально предшествующий и похожий вариант был победителем в 1984 году в конкурсе на самый запутанный код на C и писался для VAX и PDP11.

Shadow1251
()
Ответ на: комментарий от anonymous

gcc не умеет работать с русским языком. Я уже где-то в недавней теме приводил пример. Компилятор матерится на недопустимые символы

Eddy_Em ☆☆☆☆☆
()
Ответ на: комментарий от Eddy_Em

с русским языком

с алфавитом. можно же транслитом писать.

next_time ★★★★★
()
Ответ на: комментарий от yoghurt

С набиванием хелловорла в пеинте врядли сравнится

Но как? Там же заголовок формата в начале файла.

Deleted
()
Ответ на: комментарий от GAMer

Возьмём BMP, потому что остальные форматы занимаются сжатием и прочими нежелательными действиями. В любом случае первые несколько байт содержат сигнатуру BMP, размеры изображения и т. д. Если пытаться нарисовать ELF и PE, то система их не запустит, потому что сигнатура будет от BMP. А если COM, то первые несколько команд будут мусором. Вопрос в том, конечно, каким. Если этот мусор не совпадёт с кодами команд деления на ноль, вызова прерываний и различных переходов, то может и пронесёт.

Другое дело если сохранить картинку в RAW, тогда можно что-угодно нарисовать. Но пейнт не умеет этот формат.

KivApple ★★★★★
()
Ответ на: комментарий от Deleted

А никто и не отрицал. Я лично видел видео с «набивкой», там после всех действий виден BM и немного мусора в начале.

sambist ★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.