• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Program, który nic nie robi.

Object Storage Arubacloud
0 głosów
1,026 wizyt
pytanie zadane 11 listopada 2016 w C i C++ przez Rafaello Nowicjusz (170 p.)

Znalazłem takie pytanie rekrutacyjne: "Napisz program który będzie się kompilował i nic nie robił." i nie do końca go rozumiem. Pierwsza odpowiedź jaka mi się nasuwa, to program:

#include<iostream>

int main(void)
{
}

. Pojawiają się jednak dwa "ALE":

1) Wydaje się to za proste. ;)

2) Czy rzeczywiście można powiedzieć, że ten program nic nie robi, skoro zwraca wartość 0.

Mam więc pytanie, czy ten program z pustym mainem jest rzeczywiście odpowiedzią na to pytanie, czy powinna ona być inna?

komentarz 11 listopada 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
Czepialski by powiedział że niepotrzebne iostream dołączane :P
komentarz 11 listopada 2016 przez Rafaello Nowicjusz (170 p.)

No tak, dałem z przyzwyczajenia ;)

Niech będzie bez iostream- ale dalej  pytanie pozostaje: czy można powiedzieć, że ten program nic nie robi?

komentarz 11 listopada 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
Teoretycznie nic nie robi, w praktyce zwraca wartość "0"... Sprawdź jakie są odpowiedzi / zapytaj się twórcy pytania bo sam jestem ciekaw.
komentarz 11 listopada 2016 przez Rafaello Nowicjusz (170 p.)
Pytanie znalazłem w zeszycie inżyniera z Motorolli jako przykładowe pytanie rekrutacyjne i też mnie właśnie zaciekawiło, czy jest ono rzeczywiście tak proste, czy podchwytliwe.
1
komentarz 11 listopada 2016 przez jpacanowski VIP (101,940 p.)
komentarz 11 listopada 2016 przez C☺ndzi Stary wyjadacz (12,100 p.)
Fakt, może to być też test na kreatywność, ciekawe.

1 odpowiedź

0 głosów
odpowiedź 11 listopada 2016 przez Evelek Nałogowiec (28,960 p.)
int main()
{

}

 

komentarz 11 listopada 2016 przez Rafaello Nowicjusz (170 p.)
Czyli zwracanie wartości 0 można uznać, za nic nie robienie?
komentarz 11 listopada 2016 przez Evelek Nałogowiec (28,960 p.)
Czy ja wiem... To co ja napisałem się kompiluje i dosłownie nic nie robi. Nie zwraca żadnej wartości, nie przypisuje zmiennych, nie alokuje pamięci... i niepotrzebne jest #include <iostream>. Nawet bez tego <iostream> można przypisywać zmienne np. int a = 10 itd.

Jak dla mnie odpowiedzią na pytanie "program co nic nie robi i się kompiluje" to to, co napisałem w odpowiedzi pierwszej.
komentarz 11 listopada 2016 przez Rafaello Nowicjusz (170 p.)
main zwraca zero.
komentarz 11 listopada 2016 przez unknown Nałogowiec (39,560 p.)
Każdy program coś zwraca, więc można uznać, że ten program nic nie robi.
komentarz 11 listopada 2016 przez niezalogowany

@Evelek mylisz się, w przypadku main() i tak jest "doczepiany" return 0, ale trochę rzeczy jest robionych

Dla przykładu, skompilowany exe (defaultowe opcje dla g++) na starcie ma już 58kb, pamięć jest alokowana na argc, argv oraz envp (argumenty, zmienne środowiskowe):

Poniżej widać jak program i tak zwraca 0:

argc= dword ptr  8
argv= dword ptr  0Ch
envp= dword ptr  10h

push    ebp
mov     ebp, esp
and     esp, 0FFFFFFF0h
call    ___main
mov     eax, 0
leave
retn

 

komentarz 11 listopada 2016 przez Evelek Nałogowiec (28,960 p.)
W takim razie ciężko o program, który nic nie robi, skoro zwykłe int main() i tak zwraca coś i jest alokacja pamięci. Jeszcze może bym określił dokładniej co to znaczy "nic nie robi".
komentarz 11 listopada 2016 przez niezalogowany
Tutaj mamy nieco kłótnię z definicję słowa "program", bo jeżeli chcemy zrobić kod który nic nie robi to możemy po prostu napisać linię w assembly składającą się z NOP ;)

Podobne pytania

+1 głos
1 odpowiedź 313 wizyt
pytanie zadane 1 lipca 2022 w C i C++ przez polandonion Mądrala (7,040 p.)
0 głosów
3 odpowiedzi 459 wizyt
pytanie zadane 29 grudnia 2020 w C i C++ przez Sabax Nowicjusz (160 p.)
0 głosów
3 odpowiedzi 3,407 wizyt
pytanie zadane 6 stycznia 2017 w C i C++ przez Marchewka900 Bywalec (2,970 p.)

92,556 zapytań

141,404 odpowiedzi

319,561 komentarzy

61,942 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...