Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Otros entornos y lenguajes > C++ Builder
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-01-2007
Avatar de Gelmin
Gelmin Gelmin is offline
Miembro
 
Registrado: may 2003
Ubicación: Chinandega-Nicaragua
Posts: 56
Poder: 22
Gelmin Va por buen camino
Para que sirve el FastCall en C++ builder

Hola amigos, bueno estoy entrandole al c++ builder antes he hecho algunas cositas en Delphi y visual basic... pero mi primera inquietud es la siguiente:
Me gustaria saber cual es el objetivo de la palabra esa que dice __fastcall que coloca el builder al principio de las funciones... para que sirve, que pasa si no la pongo o si se la quito, quiero saber porque debe ir el fastcall ese ahi. Salu2 muchos Gel (Nicaragua).
__________________
Powered by Gel
Responder Con Cita
  #2  
Antiguo 14-01-2007
Avatar de oracle
oracle oracle is offline
Miembro
 
Registrado: feb 2005
Posts: 99
Poder: 20
oracle Va por buen camino
Cita:
Originalmente posteado por Gelmin...
Me gustaria saber cual es el objetivo de la palabra esa que dice __fastcall que coloca el builder al principio de las funciones...
Bueno Gelmin creo haber leido en alguna parte que se refiere a los tipos de convenciones que utiliza el compilador para el llamado a funciones ( hay otras como __stdcall que debes haber visto). Creo que son importantes cuando trabajamos con mas de un lenguaje o con mas de un compilador a la vez y queremos llamar funciones de uno y otro indistintamente. C++ Builder por defecto asume la convencion __fastcall para sus funciones....pero en fin seguramente algunos de nuestros amigos del foro sabran darnos una detallada explicacion del tema....

Saludos
__________________
El único hombre que no se equivoca es el que nunca hace nada.
Responder Con Cita
  #3  
Antiguo 14-01-2007
Avatar de darknesrul
darknesrul darknesrul is offline
Miembro
 
Registrado: ene 2007
Posts: 10
Poder: 0
darknesrul Va por buen camino
Con un simple F1 desde el builder te encontras con esto:

Cita:
Description Use the __fastcall modifier to declare functions that expect parameters to be passed in registers. The first three parameters are passed (from left to right) in EAX, EDX, and ECX, if they fit in the register. The registers are not used if the parameter is a floating-point or struct type. All form class member functions must use the __fastcall convention. The compiler treats this calling convention as a new language specifier, along the lines of _cdecl and _pascal Functions declared using _cdecl or _pascal cannot have the _fastcall modifier because they use the stack to pass parameters. Likewise, the __fastcall modifier cannot be used together with _export. The compiler prefixes the __fastcall function name with an at-sign ("@&quot. This prefix applies to both unmangled C function names and to mangled C++ function names. For Microsoft C++ style __fastcall implementation, see __msfastcall and __msreturn.
Es decir, esto hace que los primeros tres parametros de las funciones definidas con este modificador, se almacenen en registros (EAX, EDX y ECX) en lugar de la pila. El acceso a registro es mucho mas rapido (supongo que de ahi el "fast&quot. Si los parametros no se pueden guardar en los registros (por ser estructuras o numeros de coma flotante) se usa la pila. En cuanto a si se puede quitar este modificador que incluye el Builder por defecto la respuesta es NO. Todas las funciones miembro de una clase Form deben usar este modificador. Esta todo en la ayuda del borland....
Responder Con Cita
  #4  
Antiguo 14-01-2007
Avatar de Gelmin
Gelmin Gelmin is offline
Miembro
 
Registrado: may 2003
Ubicación: Chinandega-Nicaragua
Posts: 56
Poder: 22
Gelmin Va por buen camino
Thumbs up ok.. ahora ya tengo una idea un poco + clara

Gracias compañeros, si claro buscare + info en la ayuda lo q pasa es q no tenia el builder a mano cuando hice la pregunta y tenia esa duda... seguimos en contacto (Gel)
__________________
Powered by Gel
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
¿Para que sirve MouseDownSpot? Jan_polero API de Windows 5 15-02-2007 16:41:19
Para que me sirve MySQL??? gandalf_27 C++ Builder 2 20-07-2006 09:27:55
dbo.num ?? para que sirve? sakuragi SQL 2 15-12-2005 10:46:22
¿para qué sirve delphi? MARVIALI Varios 3 18-11-2004 22:49:19
Para que sirve DBExpress ? David Conexión con bases de datos 2 19-01-2004 21:30:44


La franja horaria es GMT +2. Ahora son las 08:08:56.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi