![]() |
Was bedeutet diese Codezeile?
Moin.
Sorry für den blöden Threadtitel aber was besseres ist mir nicht eingefallen :-D Was bedeutet diese Codezeile:
Delphi-Quellcode:
Ist das eine UND-Logik oder eine ODER-Logik für die beiden Bedingungen ciMMX und ciSSE2? "CPUFeatures" ist ein Set of-Typ.
if [ciMMX, ciSSE2] * CPUFeatures <> [] then
|
AW: Was bedeutet diese Codezeile?
Damit wird geprüft, ob die Schnittmenge der beiden Mengen leer ist.
|
AW: Was bedeutet diese Codezeile?
Sieht fast wie eine Matrixmultiplikation aus die für das Prüfen ob "Werte" gesetzt sind zweckentfremded wurde.
|
AW: Was bedeutet diese Codezeile?
![]() |
Memleak in Graphics32
Danke Deddy. Demnach wäre das in diesem Fall hier eine etwas kryptische NAND-Logik. Für alle die der Hintergrund der Frage interessiert: Ich bin in Graphics32 auf ein Memleak in GR32_Blend.pas gestoßen und habe es wie folgt behoben.
Originalcode:
Delphi-Quellcode:
Geändert:
initialization
RegisterBindings; MakeMergeTables; {$IFNDEF PUREPASCAL} MMX_ACTIVE := (ciMMX in CPUFeatures); if [ciMMX, ciSSE2] * CPUFeatures <> [] then GenAlphaTable; {$ELSE} MMX_ACTIVE := False; {$ENDIF}
Delphi-Quellcode:
Zuerst dachte ich nämlich, die Bedingung vor GenAlphaTable würde nicht passen. Dann lags aber am Compilerschalter für OMIT_MMX, der im finalization gesetzt war und im initialization nicht.
initialization
RegisterBindings; MakeMergeTables; {$IFNDEF PUREPASCAL} MMX_ACTIVE := (ciMMX in CPUFeatures); {$IFNDEF OMIT_MMX} if [ciMMX, ciSSE2] * CPUFeatures <> [] then GenAlphaTable; {$ENDIF} {$ELSE} MMX_ACTIVE := False; {$ENDIF} |
AW: Was bedeutet diese Codezeile?
Zitat:
|
AW: Was bedeutet diese Codezeile?
Wenn du dich mit binären Operationen auskennst:
Code:
a * b => a and b
a + b => a or b a - b => a and not b |
AW: Was bedeutet diese Codezeile?
Liste der Anhänge anzeigen (Anzahl: 1)
* intersection set: S * T
Beispiel: ![]() Chaotischen Text durch Grafik ersetzt: |
AW: Was bedeutet diese Codezeile?
Zitat:
|
AW: Was bedeutet diese Codezeile?
Zitat:
Code:
Operator Operation Operand types Result type Example
+ union set set Set1 + Set2 - difference set set S - T * intersection set set S * T <= subset set Boolean Q <= MySet >= superset set Boolean S1 >= S2 = equality set Boolean S2 = MySet <> inequality set Boolean MySet <> S1 in membership ordinal, set Boolean A in Set1 |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:12 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz