Título: Definición de stdin en C Publicado por: fafafa01 en 5 Septiembre 2017, 11:59 am Es legal definir stdin como sigue:
Código
Donde _iob es un arreglo de estructura tipo FILE. ¿Despues yo podria hacer esto? ¿Por que? Código
y entrar a la variable flag de la estructura FILE ¿Se pueden usar el operador de desreferencia sobre una dirección de memoria? o debria definir a stdin asi: Código
Título: Re: Definición de stdin en C Publicado por: ivancea96 en 5 Septiembre 2017, 15:16 pm El operador desreferencia es precisamente para acceder a lo apuntado por una dirección de memoria. ¿Por qué no ibas a poder?
De todos modos, evita acceder a los campos de la estructura FILE, puedes hacer las operaciones con las funciones que la librería trae consigo. Título: Re: Definición de stdin en C Publicado por: AlbertoBSD en 5 Septiembre 2017, 16:44 pm De poderse de puede hacer pero como te comentan es mejor usar las definiciones que ya tienen las librerias.
La clausula define es solo para el compilador y sustituye cada occurencia del primer parametro por el segundo en el codigo fuente antes de compilarlo ejemplo: Código
Sustituye en el codigo cada _ por printf En tu caso sustituiria cada stdin por la definicion que muestras. Saludos! Título: Re: Definición de stdin en C Publicado por: fafafa01 en 6 Septiembre 2017, 12:12 pm El operador de desreferencia sirve para acceder a lo apuntado por una dirección de memoria. El problema es que esa dirección de memoria no apunta a nada, esa dirección de memoria es una estructura tipo FILE no un puntero. ( O ESO ES LO QUE ENTIENDO).
Título: Re: Definición de stdin en C Publicado por: ivancea96 en 6 Septiembre 2017, 20:19 pm El operador de desreferencia sirve para acceder a lo apuntado por una dirección de memoria. El problema es que esa dirección de memoria no apunta a nada, esa dirección de memoria es una estructura tipo FILE no un puntero. ( O ESO ES LO QUE ENTIENDO). _iob es una matriz de FILE, que contiene varios FILE. Aunque sea un array, se puede acceder a él como si fuera un puntero. Hay pequeñas diferencias entre array y puntero, pero bueno, parecidos.Título: Re: Definición de stdin en C Publicado por: fafafa01 en 6 Septiembre 2017, 22:16 pm Claro pero para mi se tendría que definir así:
Código
En este caso al aplicarle el operador de desreferencia: Código
estarías accediendo al primer elemento del arreglo: Código
en el otro caso: Código
este codigo es equivalente a este otro: Código al aplicar el operador de desregerencia: Código Le estarias aplicando el operador de desreferencia a la direccion de memoria del primer elemento de la estructura FILE. Título: Re: Definición de stdin en C Publicado por: ivancea96 en 6 Septiembre 2017, 22:23 pm Código Esto se desarrollaría así: Código
Ten en cuenta, en el último paso, que '&' es una referencia; "añade un puntero (*)". Por tanto, stdin es un FILE. Título: Re: Definición de stdin en C Publicado por: fafafa01 en 9 Septiembre 2017, 21:53 pm Código Esto se desarrollaría así: Código
Ten en cuenta, en el último paso, que '&' es una referencia; "añade un puntero (*)". Por tanto, stdin es un FILE. No entiendo ¿que es esa K? ¿Como yo quiero definir stdin esta mal? Título: Re: Definición de stdin en C Publicado por: ivancea96 en 10 Septiembre 2017, 12:39 pm Código
|