I tillegg til C , .

» » , . , eller , . . Visual Studio GCC .

Det er ikke bare et problem, men det er ingen grunn til a tenke pa det. Det er ikke bare et problem, men ogsa a se, for eksempel, det er et problem for alle. (Kombinerer). Kombinasjonssystemer. , , __DATE__ og TTIME__, ,,,,…………………………. ………

# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # #. . Visual Studio c + +.

……………………………………………………………………… ?

I tillegg til Visual Studio c + + er det ikke noe som helst, men det er ikke noe annet.

Jeg vil gjerne generere en rekke tilfeldige tall med C-preprosessoren, og lagre dem i variabler for bruk av programmet mitt.

Jeg vil gjerne generere et «unikt» sett med tilfeldige tall hver gang jeg bygger programmet mitt. En liten delmengde av variablene som lagrer tilfeldige tall vil bli overskrevet med meningsfulle (dvs. ikke-tilfeldige) tall. Jeg vil gjerne at det er umulig for en hacker, ved a feilsoke programmet eller sammenligne flere bygg, for a kunne skille de meningsfulle tallene fra tilfeldige tall. Jeg vil at byggeprosessen skal v re automatisert og selvstendig. Jeg vil at implementeringen skal v re b rbar pa tvers av Visual Studio og GCC.

Beregningene ma gjores ved kompileringstid, ikke ved programgjennomforing. Alle som feiler programmet, bor bare kunne se for eksempel en variabel som initialiseres til en konstant (tilfeldig tall). De tilfeldige tallene skal v re heltall. Den tilfeldige tallgeneratoren skal bli sadd, pa en eller annen mate, fra __DATE__ og __TIME__, slik at forskjellige bygg vil gi forskjellige tilfeldige tall. Det ville v re a foretrekke, men ikke absolutt nodvendig, a kunne spesifisere et omrade for tilfeldige tallene (for eksempel fra 1 til 100). Det ville v re a foretrekke, men ikke absolutt nodvendig, a kunne spesifisere totalt antall tilfeldige tall for a generere (for eksempel deklarere 1000 variabler og initialisere hver til et tilfeldig tall).

FOLGER:

Forrige trad pa aritmetikk i forprosessoren: Kan C-forprosessoren utfore heltall aritmetisk? Take-away er at #if tilstanden kan evaluere aritmetikk. Googling avslorer at i tillegg til aritmetikk, kan skift og bitoperasjoner ogsa evalueres av #if. Jeg har bekreftet dette med Visual Studio C ++.

Kandidater for enkle tilfeldige tallgivere: http://www.ciphersbyritter.com/NEWS4/RANDC.HTM#[email protected] Enhver av disse generatorene, eller en hvilken som helst generator som er umulig a reversere engineering fra en gitt serier av tilfeldige tall, ville v re bra fordi jeg ikke trenger en spesielt veloppdragen generator. For denne ovelsens skyld kan vi bruke folgende som et eksempel:

Jeg tror det grunnleggende problemet er at det er tilstand som er lagret i den variable jcong mellom suksessive samtaler til generatoren. Variabel oppgave stottes ikke i forprosessoren, sa vidt jeg vet. Kanskje er det noe smart rekursiv makro som kan gjore trikset?

Det n rmeste jeg kunne fa, men ikke tilfredsstille mitt mal om a bli utfort av forprosessoren, er:

Jeg har bekreftet i Visual Studio C ++ at dette faktisk initialiserer arraymedlemmene til forskjellige tilfeldige tall. Imidlertid gar debuggeren fremdeles gjennom initialiseringen.

Dette er et rent programmerings / implementeringssporsmal, sa v r sa snill, ikke proselytizing pa ondskapene til preprosessoren eller nyttelopet for a kjempe hackere.

Sa, her er losningen som er n r kravene:

Du kan bruke det slik:

-DSEED =. . , __TIME__ og __DATE__, .

Du ma erstatte Random Generatorsekvensen med noe som faktisk genererer akseptable semi-tilfeldige verdier, men den delen skal v re enkel.

Du ma definere et tilfeldig fro med -DSEED =. ved kompilering. Ingen anelse om hvordan du gjor det med __TIME__ og __DATE__ fordi de er strenger.