“Conocimientos Programación>C /C + + Programming

Diferencia entre fgetc y getc

2014/9/14
El lenguaje de programación C le permite obtener los datos de un archivo o el teclado con las funciones fgetc o getc . Ambas funciones tienen el siguiente carácter disponible de un flujo de datos y lo almacenan como un unsigned char . Estas dos funciones se utilizan para el mismo propósito y se pueden utilizar de forma intercambiable si se toman determinadas precauciones . Aplicación

menudo hay muchas maneras legítimas para llevar a cabo una tarea de programación utilizando la instancia language.for C , tanto fgetc y getc son parte del estándar C archivo de inclusión , " stdio.h " . Fgetc se implementa como una función de C - idioma . GETC , por otra parte , se puede obtener como una función o como una macro . Por ejemplo , es posible getc incluido en el archivo " stdio.h " según el siguiente código:

# define getc ( f ) ((- ( ( f ) -> nivel ) > = 0 ) (unsigned char) (+ + ( f ) -> CURP ) [ -1 ] : _fgetc ( f ))

Siempre que el preprocesador de C analiza el código fuente y encuentra el identificador " getc " con parámetros encerrados entre paréntesis , inserta los parámetros en el símbolo de reemplazo que define getc . Mientras que los parámetros no son expresiones , la macro siempre devolverá el mismo resultado que fgetc .
Rendimiento

GETC veces se implementa como una macro para aumentar el rendimiento de aplicaciones al aumentar la velocidad de ejecución y reducir la sobrecarga de procesamiento . Cuando se utiliza fgetc en un programa, los recursos del procesador y la memoria se gastan el seguimiento de la ejecución de las instrucciones de la función , las variables de registro creados , así como el trabajo real que se necesita hacer para devolver un carácter desde el flujo de datos. Dado que la macro getc se compila en línea antes de ejecutar alguna vez el programa, no hay sobrecarga función y su aplicación puede correr más rápido.
Efectos secundarios

veces es preferible utilizar fgetc en lugar de getc con el fin de evitar los errores causados ​​por los efectos secundarios de expansión macro . Pueden ocurrir efectos secundarios cuando una macro getc se da parámetros que son más bien expresiones variables. Expansión de la macro incorrecta puede provocar múltiples intentos de acceso a la secuencia de datos que puede producir resultados inesperados. Esto se puede evitar mediante el uso de fgetc lugar o mediante la evaluación de la expresión , luego de pasar la variable resultante o puntero a getc .
Cruz Compatibilidad

fgetc como una función es que se encuentra en todos los compiladores de C que cumplen con el American National Standards Institute o ANSI C . Cuando se trata de getc , sin embargo , a menudo las cosas no son tan estándar . A veces , getc se define como simplemente como otro nombre para fgetc :

# define getc ( __stream ) fgetc ( __stream )

getc Cuando se implementa como una función, sin embargo, a mantener al mismo tiempo la compatibilidad idioma con otros compiladores de C y eliminar la posibilidad de efectos secundarios macro .

C /C + + Programming
Cómo cambiar el nombre de NIB XIB en Xcode
Cómo utilizar la función Memset en C + +
Cómo utilizar la función Strcmp en C + +
Cómo escribir código para el iPhone
Cómo quitar Microsoft Visual C + + mensajes
Cómo implementar múltiples pilas
Cómo hacer un Pincel Paint MFC
Cómo convertir un flotante al entero más cercano en Visual C
Conocimientos Informáticos © http://www.ordenador.online