Vad är villkorad sammanställning?
I datorprogrammering beskriver villkorad sammanställning förmågan hos en programvarukompilator eller källkodprocessor att inkludera eller ignorera vissa kommandon eller kodblock baserat på språkspecifika instruktioner som inte tekniskt ingår i kärnprogrammeringsspråkets specifikation. Kommandona som används för att utlösa villkorad sammanställning i ett program kallas ofta förprocessordirektiv, även om de också kan vara kända som kompilatordirektiv, villkorade kommentarer eller villkorade definitioner. Beroende på kompilatorn eller språket som används kan de villkorade direktiven vara användardefinierade variabler eller makron, eller så kan de också vara systemvariabler som ställts in av kompilatorn eller operativsystemet. Villkorlig sammanställning används ofta för att konfigurera en enda uppsättning källkodfiler så att de kan sammanställas under olika miljöer eller operativsystem utan att behöva byta eller ändra källfiler.
De villkorade definierna som används för att testa för villkorade komponentIlation kan variera från ett språk till ett annat, men de är i allmänhet makron eller andra metadatauttryck utanför ramen för de normala programvariablerna. På språk som C är variablerna vanligtvis makroer som läses av en förbehållare. För det mesta är makroerna inte tillgängliga genom faktiska körbara programkällkoden, även om de finns i samma källfiler.
Direktiven som används för att testa de definierade villkorade variablerna är rudimentära och följer samma logik som ett om-då uttalande. De grundläggande testerna som kan utföras för villkorad sammanställning är om ett värde definieras, inte definieras eller i vissa fall om två definierade variabler är likvärdiga. Variablerna eller makronen själva har i allmänhet inte något värde av betydelse, eftersom handlingen att definiera dem är vad direktiven kontrollerar för. Men med vissa språk och kompilatorerhan värdet av en definierad variabel kan betyda om de utvärderas för det booleska tillståndet.
När en kompilator möter direktiv som används för villkorad sammanställning utvärderas direktiven för att se om de testar som sanna eller falska. Om det är sant sammanställs koden som följer direktivet som normalt; Annars kommer kompilatorn helt att hoppa över koden som finns under direktivet. Detta är till skillnad från villkorade logiska uttalanden inom själva körbara programkoden eftersom även om logiken har ett kodblock som inte kan köras kommer den fortfarande att tolkas och sammanställas i de flesta fall. Med villkorade förprocessordirektiv ingår, hoppas över eller sammanställs eller sammanställs. Det bör också noteras att när förprocessorn har utvärderat alla villkorade variabler och direktiv, de inte sammanställs med resten av programmet, eftersom de endast är avsedda att ge riktning till kompilatorn.
villkorad sammanställning används oftast To Inkludera eller utesluta kod som är specifik för ett visst operativsystem eller miljö. Detta innebär att bibliotek som finns i ett operativsystem kan inkluderas villkorligt om direktiven avgör att programmet sammanställs under det operativsystemet. Alternativt kan direktiven också användas för att inkludera eller utesluta kod baserat på användardefinierade variabler. Detta kan göras så att felsöknings- eller profileringskod inte ingår i den slutliga versionen av ett program, eller så kan vissa funktioner vara aktiverade eller inaktiverade utan att behöva behålla separata kopior av koden.