Beste antwoord
Laten we beginnen bij het begin, zoals je weet dat de computer pseudorandom getallen niet echt willekeurig omdat ze zijn gebaseerd op een of andere formule die door de programmeurs is ontworpen. En op basis van die formule genereert de computer een reeks willekeurige getallen zoals we verwachten. Een manier om hierover na te denken, is zeggen dat de computer begint te lezen uit een boek met nummers op elke pagina. Door uit dit boek te lezen, kan de computer verschijnen en een reeks willekeurige getallen produceren.
Maar er is een probleem: de computer begint vanaf het begin uit het boek te lezen. Hierdoor zal de computer altijd dezelfde reeks “willekeurige” getallen produceren in een programma. Stel dat als je dit programma ergens gebruikt, zeg een spel met dobbelstenen, het altijd dezelfde resultaten zal opleveren en dat zou je niet willen.
Een oplossing voor dit probleem zou zijn als de computer begint te lezen vanaf een willekeurige plaats in het boek en niet vanaf het begin. Dit wordt “ seeding ” genoemd. Door het tijdargument in de functie srand door te geven, wordt in feite het willekeurige getal gegenereerd gebaseerd op de huidige datum en tijd, waardoor je elke keer dat je een programma start een andere random krijgt, en dit is echter niet betrouwbaar maar werkt meestal wel.
Als je deze code zou hebben gebruikt, zou je bevatte een bestand bovenaan < cstdlib zo niet is het oké. Dit bestand bevat de definitie van de functie voor het genereren van een willekeurig getal.
Antwoord
Wat gebeurt er in C ++ als ik “return 1 “in de hoofdfunctie?
Als de return 1;
-instructie daadwerkelijk wordt uitgevoerd, wordt uw programma beëindigd en krijgt u de status 1 naar de belomgeving. (Het zou een waarde van 1 kunnen teruggeven aan de aanroepende functie, maar C ++ staat het aanroepen van main
niet toe.)
Wat dit betekent hangt af van de omgeving. De taal kent geen betekenis toe aan een retourwaarde van 1. Het vereist wel retour 0; om een status terug te geven die succes aangeeft. De koptekst
, die de functie exit()
declareert, definieert ook macros EXIT\_SUCCESS
en EXIT\_FAILURE
, die de voor de hand liggende semantiek hebben als hun waarden worden geretourneerd vanuit main. (Het retourneren van een waarde van main
is in wezen gelijk aan het aanroepen van exit()
met dezelfde waarde.)
Op veel systemen , inclusief Linux, andere UNIX-achtige systemen, en Windows, geeft terugkeer 0 aan succes en teruggeven aan 1 geeft mislukking aan – maar andere systemen hebben andere conventies. (In het bijzonder gebruikt OpenVMS even waarden om mislukking aan te duiden en oneven waarden om succes aan te duiden, dus return 1;
zou succes aangeven; de C-runtime heeft speciale code om return 0;
retourneer een oneven, dwz succesvolle status.)
Als je code schrijft die alleen bedoeld is om te werken op Linux / UNIX / POSIX-systemen, return 1;
kan worden gebruikt om aan te geven dat het programma is mislukt – maar return EXIT\_FAILURE;
is draagbaarder.