10 maneras de personalizar Code :: Blocks

Code :: Blocks viene con ajustes predeterminados que son la más natural para la mayor parte de C ++ Aplicaciones- sin embargo, a medida que empiezan a pasar más y más tiempo en el medio ambiente, es posible que el Código :: Blocks puede ser un lugar más amigable con unos pocos retoques .

Carácter Uso pestaña

O más específicamente, no utilice caracteres de tabulación. Este ajuste no hace ninguna diferencia si usted está trabajando en un proyecto en el que todo el mundo siempre va a utilizar Code :: Blocks. El problema con los caracteres de tabulación, sin embargo, es que los diferentes editores tienden a interpretar las pestañas de manera diferente. Algunos editores mover el cursor a la siguiente tabulación, algunos editores se mueven el cursor sobre cierto número de caracteres, y no todos los editores están de acuerdo en el número de caracteres para asignar a una ficha. Afortunadamente todos los editores interpretan los espacios de la misma por lo que es mucho más seguro para decirle al Código :: editor de bloques de utilizar siempre los espacios y nunca guardar las pestañas en los archivos de origen. Para ello, seleccione Configuración-Editor. Ahora seleccione Configuración general de la izquierda y asegúrese de que Usar TAB Carácter no está marcada.

El resaltado de sintaxis

El resaltado de sintaxis cambia los colores de los diferentes tipos de estructuras, usando un color para palabras clave, un color diferente para los nombres de variables, una tercera para las cadenas de caracteres, y así sucesivamente. Esto es muy útil para evitar errores tontos como que estás escribiendo. Por ejemplo, si escribes mal una palabra clave, no va a aparecer en el color de palabras clave. Para activar esta función, seleccione Configuración-Editor-resaltado de sintaxis. Normalmente Code :: Blocks puede decir el lenguaje de la extensión del nombre de archivo. Si está utilizando una extensión de archivo no estándar, asegúrese de agregarla a la lista seleccionando Filemasks. Además, se puede ajustar el resaltado de sintaxis opciones de esta ventana para adaptarse mejor a sus necesidades. Esto es especialmente importante si usted tiene algún tipo de problemas de la visión, especialmente cualquier forma de daltonismo.

El código fuente formateador

Esto podría ser anticuado, pero un buen programador debería mostrar un poco de orgullo en la apariencia de su código. Esto requiere la creación y la adherencia constante a un estándar de codificación. Incluso más que eso, cuando se trabaja en un equipo grande, todo el mundo debería utilizar el mismo estándar de codificación. De lo contrario, el código se ve desordenado, como módulos escritos por una persona tienen una apariencia, mientras que los escritos por un compañero de equipo tienen una mirada diferente - muy poco profesional.

Obligar a la adhesión a un estándar de formato de codificación es fácil en Code :: Blocks. Su editor de código va a formatear su código para adaptarse a cualquier nivel deseado.

El código fuente de Code :: Blocks formateador no ajustará los nombres de variables. Lo que es peor, no va a tocar la lógica del programa. Así que si usted escribe código de mala muerte, no echarle la culpa al editor de Code :: Blocks.

Seleccione Configuración-Editor y seleccione Fuente formateador de la lista que aparece para obtener una ventana que se parece a la Figura 1. La ventana de vista previa que muestra lo que sus opciones se verá como en la práctica. En este ejemplo se sigue el estándar ANSI, pero usted puede elegir entre muchas otras normas comunes, o puede seleccionar Personalizado y luego haga clic en las pestañas de sangría y Formato para crear su propio estándar.

Figura 1: Configuración del formateador de código fuente puede ayudarle a aplicar un estilo de codificación uniforme.
Figura 1: Configuración del formateador de código fuente puede ayudarle a aplicar un estilo de codificación uniforme.

Una vez que haya seleccionado un estándar, el editor tratará de convencer a usar ese estándar. Por ejemplo, si introduce si es verdad) y luego pulse Enter, el editor poner el cursor en la posición con sangría debajo de la si. Si a continuación, introduce una llave abierta, el editor copias de seguridad, colocar la llave en línea con el yo en si, saltar a la siguiente línea, y sangrar más.

Aún mejor, una vez que haya terminado de codificación, si selecciona Plug In-Fuente Código formateador (Astyle), el editor pasará a través de su módulo y vuelva a aplicar el estándar de código fuente actual. Así que si su compañero de trabajo no era tan cuidadoso con su programación como eras, no se preocupe - unos pocos clics del ratón y todo es limpiado.

Abreviaturas Código

Esta es una opción extraña. Si codifica una gran cantidad (es decir: mucho!), Abreviaturas del código pueden ahorrar tiempo, sobre todo si no eres un muy buen mecanógrafo. Abreviaturas Código le permite introducir una palabra código y luego pulsa Ctrl + J, y voila, el editor de Code :: Blocks entraréis en el plantilla predefinida correspondiente que luego rellenar.

Por ejemplo, si usted fuera a entrar en clase en una copia de Code :: Blocks y luego entró Ctrl + J, Code :: Blocks habría primero que pregunte por el nombre de su clase y luego se llenaría en todas las cosas se muestra en la Figura 2.

Figura 2: El uso de código fuente abreviación le puede ahorrar mucho tiempo si usted puede recordar a usarlo!
Figura 2: El uso de código fuente abreviación le puede ahorrar mucho tiempo si usted puede recordar a usarlo!

Code :: Blocks viene con un conjunto de abreviaturas ya definidos, pero usted puede añadir todas las abreviaturas que desea seleccionando Configuración-Editor y seleccionando la opción de abreviaciones en la parte izquierda de la ventana.

Lo bueno de código abreviatura es que puede ahorrar un montón de escribir y hace cumplir automáticamente el estándar de formato de código fuente que seleccione. Mecanógrafa muy rápida (o tendría que ser teclista?) No puede obtener una gran cantidad de esta función, pero si usted no utiliza los diez dedos al escribir o son de otra manera simplemente lento en el teclado, es probable que desee probar el uso de esta característica.

Autocompletar

Code :: Blocks tiene esta característica interesante llamada Autocompletar. Después de haber escrito en un número mínimo de letras (el valor predeterminado es de cuatro, pero cambiar eso), si hace una pausa en su escritura, Code :: Blocks buscará todas las cosas que comienzan con esas letras. De esta manera, Code :: Blocks puede anticipar qué es lo que estás tratando de decir.

Por ejemplo, en el programa Budget5 que se incluye con el material descargable desde Dummies.com, si introduce Acco y luego hacer una pausa sólo un medio segundo (que no es muy larga!), entonces se abre una ventana como se muestra en la Figura 3, que ofrece las únicas dos cosas que Code :: Blocks sabe acerca de este programa que se inicia con Acco: la clase Cuenta y el typedef AccountPtr. Desde que te referías Cuenta, usted puede pulsar Enter y llenará esto para mí.

Figura 3: Code :: Blocks encuentra a sólo dos partidos para Acco en este programa. El primero es lo que era
Figura 3: Code :: Blocks encuentra a sólo dos partidos para Acco en este programa. El primero es lo que yo estaba buscando.

En este ejemplo, va a crear un puntero a un Cuenta llamado PACC. La próxima vez que escriba en pAcc-> y luego hacer una pausa, Code :: Blocks abre una ventana con la lista de los miembros públicos de Cuenta como se muestra en la Figura 4.

Figura 4: Dado un objeto, Code :: Blocks encontrarán los miembros públicos accesibles desde ese objeto.
Figura 4: Dado un objeto, Code :: Blocks encontrarán los miembros públicos accesibles desde ese objeto.

Esta es una característica interesante cuando se refiere a sus propias clases. Más que nada, la selección de la lista significa que no escribe en el nombre de la función equivocada o mal escrita.

Esta característica realmente se vuelve interesante cuando entras en un objeto que se define en una biblioteca. Por ejemplo, si introduce cout., obtendrá una lista de los miembros del público a disposición del cout objeto. Esto puede ser realmente útil cuando usted no tiene la documentación o simplemente no sabes por dónde empezar.

Habilitar todas las advertencias

Habilitar todas las advertencias es un pan comido. Los errores que aparecen en tiempo de compilación son mucho más fáciles de encontrar (duh!) Y fijar que las que tienes que ir a la caza de ti mismo en tiempo de ejecución. Es por eso que la sintaxis de C ++ es tan exigente - que quiere asegurarse que usted ha codificado exactamente lo que usted pensó antes de que se apaga y crea un ejecutable que hace algo completamente diferente.

Hay un par de cosas, sin embargo, (un buen número de cosas, en realidad) de que el compilador GNU C ++ fijará y continuar sin hacer comentarios, si usted desea. Por ejemplo, no es un error de definir una variable en una función y luego no usarlo. O para decirlo de una vuelta en el medio de una función para que las líneas de código después de la devolución no se pueden ejecutar. Estos no son errores, pero lo hacen mirar poderoso extraño para un compilador desconfiada.

El compilador GNU generará una advertencia si ve cualquiera de estos dos casos, o cualquiera de las docenas de otras construcciones sospechosas en el código. Hay que ir más de cada advertencia para asegurarse de que usted entiende lo que el compilador se queja y por qué. Trate de arreglar el problema si se puede, pero entenderlo, incluso si usted no elige a arreglarlo.

Advertencias descubrirán un montón de errores que están a punto de convertirse en errores en sus programas.

Creación de un nuevo objetivo de construcción

El entorno de Code :: Blocks permite crear más de un objetivo de generación. Un objetivo build le permite crear un archivo ejecutable independiente con configuración de generación únicas. Por ejemplo, que sin duda querrá incluir información de símbolos en el ejecutable que se utiliza para depuración, pero no en el que tiene la intención de enviar a los clientes (ver más abajo para más).

Se pueden crear más fácilmente un destino de generación de depuración y un objetivo de generación de lanzamiento al crear el proyecto - dejar que el asistente haga todo el trabajo por usted. Sin embargo, muy a menudo sucede que después de semanas de trabajo en y depuración de un proyecto, se van a liberarlo sólo para encontrar que no hay objetivo generación de lanzamiento. No hay que preocuparse, siempre se puede crear un nuevo objetivo construir por su cuenta.

Para crear un nuevo objetivo de compilación, seleccione Proyecto-Properties, seleccione la ficha Targets construir. Verá algo que se parece a la Figura 5, que muestra el programa Budget5 con una meta única versión de depuración.

Figura 5: Una de las propiedades del proyecto es la lista de objetivos de construcción.
Figura 5: Una de las propiedades del proyecto es la lista de objetivos de construcción.

Utilice los siguientes pasos para crear un destino de generación de lanzamiento:

  1. Seleccione el destino de depuración y haga clic en Duplicar.

  2. Introduzca el nombre del nuevo objetivo construir, de lanzamiento.

  3. Cambie el nombre del archivo de salida a bin Release Budget5.exe y el Directorio de objetos de salida a obj Release .

  4. Haga clic en Opciones de generación para establecer las opciones de construcción lo que desea para este objetivo en particular y haga clic en Aceptar.

    Definitivamente va a querer convertir la información símbolo fuera y gire optimización.

  5. Haga clic en Aceptar para guardar la nueva meta de generación.

Para construir un destino de generación en particular, seleccione Target-Build Select, y luego elegir los destinos disponibles. Esto dirige Code :: Blocks en cuanto a qué ejecutable que desea crear cuando se selecciona la acumulación.

Proyecto - permitir optimizaciones

Se podría pensar que cada línea de código C ++ genera un conjunto de instrucciones de la máquina sin que respecta a las líneas de código a su alrededor, y en modo no optimizado estaría en lo correcto. El optimizador incorporado en el compilador GNU puede generar un programa más eficiente de su C ++ fuente mirando a través de múltiples líneas de código.

Considere el siguiente ejemplo trivial y completamente formado por (pero inteligente):

// I ++ - EAX MOV, i [BP] INC EAXMOV i [BP], EAX // fn (i) EAX MOV, i [BP] EMPUJE EAXCALL FN

Aquí la línea i ++ se convirtió en las tres líneas de código de máquina que siguen:

  1. Cargar el valor de yo en el registro EAX.

  2. Incrementar el registro EAX.

  3. Almacenar el valor incrementado de nuevo en yo.

    La siguiente línea convierte la llamada fn (i) en lo siguiente.

  4. Cargar el valor de yo en el registro EAX.

  5. Empuje el valor de EAX en la pila.

  6. Haga la llamada.

Observe que el Paso 4 es realmente innecesario. No hay necesidad de cargar el valor de yo en el registro EAX ya que el valor ya está ahí desde los pasos 1, 2 y 3. Incluso un optimizador mediocre daría cuenta este hecho y no generar la segunda MOV EAX, i [BP].

Esto no es mucho de un ahorro, pero este ejemplo es fácil de entender, aunque no es una gran mejora. Usted tendría que ser un genio real en lenguaje ensamblador para entender la mayoría de las optimizaciones que el compilador GNU hace.

Puede habilitar optimizaciones para una construcción particular, mediante la selección de opciones de proyecto y construcción, a continuación, seleccionando construir el lanzamiento de la izquierda y seleccionando una de las opciones de optimización.

Técnicamente, hay varias opciones de optimización ya que el optimizador puede tomar mucho tiempo. Si usted tiene un proyecto muy grande, no hay mucho sentido gastar mucho tiempo la optimización de un módulo que no se ejecutará muy a menudo. Para pequeñas y proyectos de tamaño mediano, simplemente permitir la optimización completa - usted no notará los pocos segundos extra que se necesita para compilar.

Puede activar esta opción para todos construye seleccionando Configuración del compilador, a continuación, seleccionar la pestaña Compiler y seleccionar uno de los casos- Optimizar sin embargo, esto no es una buena idea. No permitir la optimización en la versión de depuración del proyecto si usted planea usar el depurador. Los cambios en el código que realiza el optimizador hará que el programa parecen saltar alrededor en un paseo semi-aleatoria cuando intenta dar un paso a través de él.

Proyecto - desactivar los símbolos de depuración

Símbolo información se incluye en el ejecutable únicamente para el uso del depurador. Esta información no debe ser incluido en la versión que usted envía a los usuarios: Aumenta el tamaño del ejecutable sin necesidad y, peor aún, se libera información peligrosa para los piratas informáticos debe uno estar tratando de encontrar una vulnerabilidad en su programa.

Para desactivar la información de depuración en el objetivo de generación de lanzamiento, seleccione Opciones Proyecto-Construir y, a continuación, seleccione el destino de lanzamiento de la izquierda. Ahora asegúrese de que los símbolos de depuración Produce [-g] opción se hace clic fuera de la meta de lanzamiento. (Ahora es un buen momento para asegurarse de que esta misma opción se hace clic en el destino de generación de depuración.)

Proyecto - establecer los argumentos de un programa

Algunos programas están destinados a ser ejecutados con los argumentos de línea de comandos. Code :: Blocks proporciona el siguiente mecanismo para proporcionar argumentos de la línea de comandos al ejecutar un programa de este tipo dentro del Código :: Blocks medio ambiente:

  1. Seleccione Argumentos Proyecto-Set Programas '.

  2. Seleccione el destino de generación en la ventana superior.

  3. Introduzca lo que quieras en la ventana Argumentos de programa.

  4. Seleccione Aceptar para cerrar la ventana.

Cuando entras en Inicio o en Ejecutar, Code :: Blocks suministrará estos argumentos a su programa.




» » » » 10 maneras de personalizar Code :: Blocks