AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Delphi Was bedeutet diese Codezeile?

Was bedeutet diese Codezeile?

Ein Thema von Codehunter · begonnen am 28. Nov 2013 · letzter Beitrag vom 28. Nov 2013
Antwort Antwort
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#1

Was bedeutet diese Codezeile?

  Alt 28. Nov 2013, 11:11
Moin.

Sorry für den blöden Threadtitel aber was besseres ist mir nicht eingefallen

Was bedeutet diese Codezeile: if [ciMMX, ciSSE2] * CPUFeatures <> [] then Ist das eine UND-Logik oder eine ODER-Logik für die beiden Bedingungen ciMMX und ciSSE2? "CPUFeatures" ist ein Set of-Typ.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: Was bedeutet diese Codezeile?

  Alt 28. Nov 2013, 11:14
Damit wird geprüft, ob die Schnittmenge der beiden Mengen leer ist.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.251 Beiträge
 
Delphi 2006 Professional
 
#3

AW: Was bedeutet diese Codezeile?

  Alt 28. Nov 2013, 11:15
Sieht fast wie eine Matrixmultiplikation aus die für das Prüfen ob "Werte" gesetzt sind zweckentfremded wurde.
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.533 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Was bedeutet diese Codezeile?

  Alt 28. Nov 2013, 11:18
http://docwiki.embarcadero.com/RADSt...e_%28Delphi%29, siehe dort unter Mengenoperatoren.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#5

Memleak in Graphics32

  Alt 28. Nov 2013, 11:59
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:
initialization
  RegisterBindings;
  MakeMergeTables;

{$IFNDEF PUREPASCAL}
  MMX_ACTIVE := (ciMMX in CPUFeatures);
  if [ciMMX, ciSSE2] * CPUFeatures <> [] then
    GenAlphaTable;
{$ELSE}
  MMX_ACTIVE := False;
{$ENDIF}
Geändert:
Delphi-Quellcode:
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}
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.
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von bernau
bernau

Registriert seit: 1. Dez 2004
Ort: Köln
1.268 Beiträge
 
Delphi 11 Alexandria
 
#6

AW: Was bedeutet diese Codezeile?

  Alt 28. Nov 2013, 12:02
Wieder was gelernt. Immer wieder toll hier mitzulesen.
Gerd
Kölner Delphi Usergroup: http://wiki.delphitreff.de
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#7

AW: Was bedeutet diese Codezeile?

  Alt 28. Nov 2013, 12:12
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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
hathor
(Gast)

n/a Beiträge
 
#8

AW: Was bedeutet diese Codezeile?

  Alt 28. Nov 2013, 12:13
* intersection set: S * T

Beispiel:
http://delphi.about.com/od/beginners...i_set_type.htm

Chaotischen Text durch Grafik ersetzt:
Miniaturansicht angehängter Grafiken
setoperators.jpg  

Geändert von hathor (28. Nov 2013 um 17:44 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Codehunter
Codehunter

Registriert seit: 3. Jun 2003
Ort: Thüringen
2.272 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Was bedeutet diese Codezeile?

  Alt 28. Nov 2013, 14:11
Zitat von Emba:
union set set Set1
Einfach herrlich
Ich mache grundsätzlich keine Screenshots. Schießen auf Bildschirme gibt nämlich hässliche Pixelfehler und schadet der Gesundheit vom Kollegen gegenüber. I und E zu vertauschen hätte den selben negativen Effekt, würde aber eher dem Betriebsklima schaden
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.014 Beiträge
 
Delphi 12 Athens
 
#10

AW: Was bedeutet diese Codezeile?

  Alt 28. Nov 2013, 14:31
Einfach herrlich


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
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 14:57 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz