Простая и интересная задачка по C++

Всем привет, я сам ещё новичок в C++(< 2 лет изучаю), но уже что-то понимаю и решил сделать задачу на основы языка для совсем зелёных, для решения из C++ вам нужно будет знать функции, cout и указатели.


Итак, задача:

Дан следующий код: http://pastebin.com/5ehUmhZB


Результат его выполнения:

Hello, World
secret function 42

Вопросы:

1 Почему выводится secret function 42, если вызывается только printHelloWorld(); 

2 Откуда взялось число 42?


Подсказки:

1 Не потому что 42 - это ответ на «главный вопрос Жизни, Вселенной и Всего Остального»

2 На других архитектурах и компиляторах результат может быть другим, я компилил в linux gcc 5.4.0 x64


P.S. Если не верите, можете убедиться сами https://www.tutorialspoint.com/viewproject.php?URL=compile_cpp_online.php&PID=0Bw_CjBb95KQMTW9WaTliUXRqc1U

Лига программистов C/C++

63 поста4.8K подписчиков

Добавить пост

Правила сообщества

Соблюдайте правила Pikabu:

https://pikabu.ru/html.php?id=wtf


Помимо этого ЗАПРЕЩЕНО:

- Размещать в сообществе посты стиля "Подскажите как удалить вирус", "Подскажите как установить программу", "Подскажите как починить монитор/телевизор/мышь/тостер/стиральную машину" или "Напишите за меня лабу в универ". Пожалуйста размещайте такие посты вне этого сообщества или в соответствующих для этого сообществах.

Вы смотрите срез комментариев. Показать все
1
Автор поста оценил этот комментарий

Такого количества говнокода я в одном месте 100 лет не видел! = )

Лучше бы код научился переносимый писать, а то умников которые знают как стек имппользуется полно, а вот приложение под несколько архитектур написать - нет.

раскрыть ветку (8)
Автор поста оценил этот комментарий
Осиль Qt, да, конечно, есть нюансы, но большинство приложений без проблем компилятся на многих платформах.
раскрыть ветку (7)
Автор поста оценил этот комментарий

Причем тут Qt? В том то и дело что не компилится, а как только ты его все таки собираешь вылазит огромное количество багов, даже при просто переходе от x86 на x86_64. Не говоря уже о других ОС и архитектурах. Да хрен с ним, даже просто другим компилятором собрать проблема и баги даже там лезут!

раскрыть ветку (6)
Автор поста оценил этот комментарий
Вот например большой проект на Qt https://github.com/goldendict/goldendict (не мой, если что) и он прекрасно компилится под разные платформы.
раскрыть ветку (5)
Автор поста оценил этот комментарий

Я не говорил что это не возможно. Только вот поробуй добавь туда еще какую-нибудь платформу, давай возьмем арм даже с тем же линуксом на борту так ли все легко и гладко будет?

Когда одной из задач является переносимость - это сделать гораздо проще, но как практика показала писать переносимый код та еще проблема и она посерьезнее, чем твои выкрутасы с UB.

раскрыть ветку (4)
Автор поста оценил этот комментарий
Да угомонись ты уже, молодец, что пишешь переносимый код, я рад за тебя, мне это не дано.
раскрыть ветку (3)
Автор поста оценил этот комментарий

что ты завелся то? как девочка ей-богу. не ныл бы, а мотал на ус пока советы бесплатные дают.

раскрыть ветку (2)
Автор поста оценил этот комментарий

Офигенный совет, "пиши переносимый код", это как сказать "пиши читаемый код", "пиши полезные программы" и т.д. Во первых, это не везде нужно, некоторые программы пишутся, допустим под мобилку и портироваться на ПК не будут и наоборот, а во вторых, мне твои "советы" не нужны.

раскрыть ветку (1)
Автор поста оценил этот комментарий

Это вещи о которых нужно постоянно помнить. И если не знаешь об этом то есть смысл погуглить/почитать/посоветоваться/посмотреть (просто направление движения, так же как и "читаемый код").

У любого продукта есть срок поддержки, даже под мобилки выйдет новая версия ОС или решат с iOS на Android перенсти - не бывает так что выпустили и забыли. А лет через 5 нужно будет и на компилятор поновее перейти, и библиотеки обновить вот тут то все и аукнется.
Ну, не нужны так не нужны. Не сердись, и хорошего дня! ;)

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку