Español
C ++ Foro

Zeiger

 
- Página 1 -


¡Hola, irgendwie packe Yo con el Zeiger no de C++(Dev C++).
Lo kommt hier el Valor 0 fuera, eigentlich Yo quería 45 haben.

Wer sabe se como de con el Fehler, el I, con el Zeiger gemacht habe?

mfg
peter
KompilierenMarcaSeparación
declare testram#
dim testram#,100
cls
test()
print byte(testram#,0)
WaitInput
end

proc test

    parameters testram#
    int *a;
    *a=addr(testram#);
    a[0]=45;

13.09.2008  
 



 
- Página 2 -



Jörg
Sellmeyer
Mach veces imprimir ram#
Tal vez el sí ya el gesuchte Zeiger.
 
Windows XP SP2 XProfan X4
... und hier mal was ganz anderes als Profan ...
13.09.2008  
 




Sebastian
König
Yo habe lo ahora no getestet, aber

long *pL = (long*)PVAR(ram#);

debería eigentlich trabajo...

Apéndice: Jörgs Referencia va en el gleiche Richtung, sehe Yo gerade
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
13.09.2008  
 



Gracias euch, ahora es.
Imprimir ram#, como kommt el Zeiger direkt , sin el Befehl : addr.

Es el C++-Befehl : char* p = reinterpret_cast<char*>(adrr);

Zum Test Yo el Adresse 44 y 45 ausgegeben.
Lo se el richtige Valor de el Adresse 44 y 45 ausgegeben.
Beide Zeiger fangen en "0" a.

Puhhh......

mfg
peter
KompilierenMarcaSeparación
declare adresse%,ram#
dim ram#,1000
adresse%=ram#
cls
hole()
print byte(ram#,44)
print byte(ram#,45)
WaitInput
end

proc hole

    P2CPP: <INLINE_CPP>
    long adrr;
    adrr=PVAR(adresse%);
    char* p = reinterpret_cast<char*>(adrr);
    p[44]=66;
    p[45]=77;
    P2CPP: </INLINE_CPP>

ENDPROC

 
13.09.2008  
 



Und ni For-Bucle en C++.
Hui, el va de, 10x 10.000.000.

Kann Yo kaum glauben, bestätige el Por favor, veces.
Yo habe 180ms.
Sebastian kannste el veces Testen, no el el Variable con 10.000.000 falso durchlaufen se.

mfg
peter
KompilierenMarcaSeparación
 
13.09.2008  
 



long *pL = (long*)PVAR(ram#);

Der Befehl va no .

mfg
peter
 
13.09.2008  
 



Seguro el No long pL = (long*)PVAR(ram#) media? Hab kein prf2cpp a Hand...
 
13.09.2008  
 



Hab kein prf2cpp a Hand...

Pero Tiempo, el lo en dir standard se esta Wunderwaffe ala C++ con Profano2ccp.

mfg
peter
 
13.09.2008  
 



long pL = (long*)PVAR(ram#)

Compilerfehler..

Tomar esta Variante : char* pL = reinterpret_cast<char*>( adrr);

mfg
peter
 
13.09.2008  
 




Sebastian
König
Peter Bierbachh
long pL = (long*)PVAR(ram#)

Compilerfehler..

Tomar esta Variante : char* pL = reinterpret_cast<char*>( adrr);


Ok, el reinterpret_cast<>() es en el Tat el sichere Variante, como el Bereichsvariablen en el de Profano2Cpp erzeugten Code primero veces kein Zeigertyp (pero en el Grunde simplemente long) son. Manche Compiler meckern entonces el alten C-Style Cast con (long*) a.

Su Code sieht correcto de . Natürlich se ejecuta el entonces muy rápidamente. Für solche Sachen es Inline-C++ allerdings garnicht notwendig, el el XProfan-Code en efecto después de C++ se traduce. Usted puede para Ejemplo veces dies hier testen:
KompilierenMarcaSeparación
declare test%,i%
cls
test%=&GetTickCount

whileloop 1,10,1

    schleife_prf()
    print i%

endwhile

proc schleife_prf

    var zahl% = 0

    whileloop 10000000

        zahl% = zahl% + 1

    endwhile

endproc

Print Str$(Int(&GetTickCount-test%))
WaitInput
end

Wenn Yo el Compiler-Optimierungen (con el TuneMake-Plug-In  [...]  ) deaktiviere, kann Yo no Geschwindigkeitsunterschied a Deiner Variante con el Inline-Code mehr determinar.

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
14.09.2008  
 



Ok, el reinterpret_cast<>() es en el Tat el sichere Variante,

¿Puede du dafür todavía una vez una Ersatz reinstellen, el entonces todos Compiler anerkennen?

mfg
peter
 
14.09.2008  
 



Hier sieht lo anders de.
Eingebaut en el Programa como C++ y luego con Profano2cpp : 143ms Dev C++ y 135ms con BCC55
Als normales Programa con Profano2cpp erstellt : 670ms con DEV c++ y 390ms con BCC55

mfg
peter
KompilierenMarcaSeparación
cls
declare bildxy#,laenge%,test%,z%
dim bildxy#,65000
laenge%=65000
test%=&GetTickCount

whileloop 1,100,1

    z%=rgb_farbe_cpp(bildxy#,laenge%)

endwhile

Print Str$(Int(&GetTickCount-test%))
WaitInput
end

proc rgb_farbe_cpp

    parameters bildxy#,laenge%
    declare r%,g%,b%

    whileloop 0,laenge%-1,4

        b%=byte(bildxy#,&loop)
        g%=byte(bildxy#,&loop+1)
        r%=byte(bildxy#,&loop+2)

        if (b%>252) | (g%>252) | (r%>252)

            z%=255
            break

        endif

    endwhile

ENDPROC

 
14.09.2008  
 




Sebastian
König
Peter Bierbachh
Ok, el reinterpret_cast<>() es en el Tat el sichere Variante,

¿Puede du dafür todavía una vez una Ersatz reinstellen, el entonces todos Compiler anerkennen?


Der reinterpret_cast<>() debería eigentlich de allen Compilern erkannt voluntad - es Teil des Standard-C++ Sprachumfangs.... Was genau funktioniert porque no? Generell gilt, dass uno se en Inline-C++ bastante simplemente a el halten muss, qué el verwendete Compiler unterstützt. Puedo sólo beim Übersetzen des XProfan-Codes sicherstellen, dass el Ergebnis con allen unterstützten Compilern se ejecuta.

Peter Bierbach
Hier sieht lo anders de.
Eingebaut en el Programa como C++ y luego con Profano2cpp : 143ms Dev C++ y 135ms con BCC55
Als normales Programa con Profano2cpp erstellt : 670ms con DEV c++ y 390ms con BCC55


Ok, entonces kommt lo wohl auch en el Einzelfall a. Inline-C++ es natürlich praktisch para muy geschwindigkeitskritische Dinge - ähnlich como Inline-ASM en C++. Letzteres ginge de paso auch innerhalb des INLINE_CPP-Blocks, pero yo arbeite a Tiempo auch a uno direkten Unterstützung de Franks XPIA en Profano2Cpp .

MfG

Sebastian
 
Windows XP, XProfan/Profan² 4.5 bis 11
Profan2Cpp-Homepage:  [...] 
Alte Profan²-Seite:  [...] 
14.09.2008  
 




Respuesta


Título del Tema, max. 100 Signo.
 

Systemprofile:

Kein Systemprofil creado. [anlegen]

XProfan:

 Contribución  Font  Smilies  ▼ 

Bitte registro en una Contribución a verfassen.
 

Tema opciones

9.135 Views

Untitledvor 0 min.
funkheld17.12.2013
H.Hackl22.03.2012

Themeninformationen



Admins  |  AGB  |  Applications  |  Autores  |  Chat  |  Política de Privacidad  |  Descargar  |  Entrance  |  Ayuda  |  Merchantportal  |  Pie de imprenta  |  Mart  |  Interfaces  |  SDK  |  Services  |  Juegos  |  Búsqueda  |  Support

Ein Projekt aller XProfan, el lo son!


Mi XProfan
Privado Noticias
Eigenes Ablageforum
Temas-Merkliste
Eigene Beiträge
Eigene Temas
Zwischenablage
Cancelar
 Deutsch English Français Español Italia
Traducciones

Política de Privacidad


Wir uso Cookies sólo como Session-Cookies wegen el technischen Notwendigkeit y en uns hay no Cookies de Drittanbietern.

Wenn du hier en unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung de Informationen en unseren Cookies en XProfan.Net a.

Weitere Informationen a unseren Cookies y dazu, como du el Kontrolle darüber behältst, findest du en unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Yo möchte no Cookie