Tecnología

Inicio

Errores de programación C y cómo solucionarlos

Errores de programación C y cómo solucionarlos


"Escribir en C o C ++ es como correr una sierra de cadena con todos los guardias de seguridad retirados", es una frase atribuida al autor Bob Gray. Mientras que C no es tan peligroso como implica el señor Gray, que es un lenguaje de gran alcance que ofrece al programador de acceso de bajo nivel al entorno de programación y sin muchas restricciones. Los autores de C, Brian Kernighan y Dennis Ritchie, por ejemplo, "C conserva la filosofía básica que los programadores saben lo que están haciendo, sino que sólo requiere que declaran sus intenciones de forma explícita." Es la que indica explícitamente que a menudo causa problemas a los programadores.

Instrucciones

1 Comience subíndices de matriz con un cero en C. Muchos programadores empezar a acceder a una matriz con array_variable [1], que es en realidad el segundo elemento de la matriz. El primer elemento es array_variable [0]. En la misma línea, el mismo programador accede entonces a uno de los elementos más allá del final de la matriz. Para un arsenal de 10 elementos, los subíndices van del 0 al 9, no 1 a 10. El acceso a subíndice 10 está accediendo al undécimo elemento de la matriz, que no existe. Sin querer acceder a la memoria fuera de sus variables, podría provocar en un programa para terminar anormalmente - nunca una buena cosa.

2 Inicializar las variables antes de usarlos. Un error frecuente en la programación C es el uso de una variable antes de almacenar nada en la variable, que es particularmente problemático cuando se trata de punteros. Por ejemplo, si desea que la suma de una serie de números introducidos por el usuario, asegúrese de inicializar la variable suma para comenzar en cero. Mientras que las variables y constantes globales por defecto a cero, otras variables que no lo hacen.

3 Utilice constantes o variables simbólicas constantes para evitar números aleatorios en el cuerpo de su programa. Por ejemplo, si el procesamiento de una matriz de 15 elementos, crear una constante simbólica para el tamaño de la matriz en lugar de utilizar el 15 en el cuerpo de un bucle. Si cambia el tamaño de la matriz, sólo se necesita cambiar la constante simbólica. Esto evita el error de programación C de aumentar el tamaño de una matriz, pero olvidándose de procesar todos los elementos a causa de una constante en el bucle.

4 Comparar los valores con un == en C. El símbolo = no se utiliza para las asignaciones y comparaciones es un error difícil de encontrar en un programa. Una sentencia if que comprueba para ver si el denominador es cero antes de realizar una división debería tener este aspecto:

si (denominador == 0) printf ( "Error - No se puede dividir por cero \ n");

La declaración:

si (denominador = 0) printf ( "Error - No se puede dividir por cero \ n");

establece la variable denominador a cero, entonces no pasa la verificación de si las asignaciones ya asumen el valor de lo que se le asigna, cero en este caso. Ahora ha creado el problema que usted verificó; denominador es cero porque lo establece en cero.

Consejos y advertencias

  • Los programas que actúan de manera irregular por lo general son programas con problemas de memoria. Compruebe si hay punteros no inicializados o subíndices de matriz que están fuera de los límites de lo que se ha asignado.