C/Visual C - ¿inline?

 
Vista:

¿inline?

Publicado por Geo (47 intervenciones) el 07/02/2003 01:17:38
¿alguna breve explicación sobre las funciones inline y la declaración volatile?
Es que tengo un código fuente en c++, y en mis manuales de C no encuentro nada.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:¿inline?

Publicado por chuidiang (677 intervenciones) el 07/02/2003 05:46:43
Una función inline el compilador la trata sin crear una función, sino poniendo el código directamente donde se llama en vez de la llamada a la función. El resultado es que es más rápido de ejecutar (no se hacen las llamadas a las funciones), pero el código es más grande (se repiten trozos de código). Suele hacerse con funciones pequeñas del estilo de asignación de variables o return directo de alguna cosa.

Una variable volatile es una variable que puede cambiar de valor sola. A veces se puede hacer que una variable coincida sobre un determinado puerto de entrada (al menos en unix), con lo que el valor de la variable depende en cada momento de lo que esté entrando en ese puerto. No sé muy bien qué, pero el compilador debe hacer un tratamiento especial de esas variables.

Se bueno
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:¿inline?

Publicado por Googol (255 intervenciones) el 07/02/2003 20:40:07
volatile también se utiliza si la variable está siendo "compartida" en más de una hebra, por ejemplo.
Es necesaria para que el compilador no realice optimizaciones sobre su uso. Siempre que sea posible, el compilador leerá el valor de la variable y la meterá en un registro del procesador. Todos los usos de la variable (lectura o escritura) que se hagan posteriormente (mientras la variable se mantenga en el registro) no tendrán su repercusión en memoria, pues el compilador meterá instrucciones en código ensamblador para utilizar el registro de la CPU.
Si la variable es volátil (puede cambiar por una razón externa a la ejecución secuencial del programa), el uso del registro del procesador con esa variable es incorrecta, pues nunca se verán los cambios realizados en la copia en memoria. El "volatile" evita, por lo tanto, que el compilador use registros para esa variable. De algún modo, es la antítesis de "register".

Suerte!
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Gracias

Publicado por Geo (47 intervenciones) el 08/02/2003 06:19:58
gracias a ambos por la explicación, se los agradezco.

Saludos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar