Al hacer ingeniería inversa de un lenguaje como C++, puede ser que encuentre directivas del preprocesador repartidas por todo el código. Esto puede hacer que la administración de código sea más fácil, pero puede dificultar el análisis sintáctico del lenguaje subyacente en C++.
Para ayudar a arreglar esto, puede incluir cualquier número de definiciones macro, las cuales son ignoradas durante la fase de análisis de la ingeniería inversa. Todavía es preferible, si tiene la funcionalidad, pre-procesar el código utilizando el compilador apropiado primero; de esta manera las definiciones macro complejas y definiciones se expanden y se pueden analizar fácilmente. Si no tiene esta funcionalidad, entonces esta opción proporciona un sustituto conveniente.
Acceso Configuraciones | Macros del Procesador Previo
Definir un macro
Paso
|
Acción
|
Ver También
|
1
|
Seleccione la opción de menú Macros del Procesador Previo .
Se muestra la ventana de Macros de Lenguaje.
|
|
2
|
Haga clic en el botón Agregar Nuevo .
|
|
3
|
Ingrese detalles para su macro.
|
|
4
|
Haga clic en el botón Aceptar .
|
|
Temas
Tema
|
Detalle
|
Ver También
|
Macros Embebidos Dentro de Declaraciones
|
Los Macros a veces son utilizados dentro de la declaración de Clases y operaciones, como en los siguientes ejemplos:
class __declspec Foo
{
int __declspec Bar(int p);
};
Si declspec se define como un macro C++, como se muestra arriba, la Clase y operación importadas contienen un Valor Etiquetado llamado DeclMacro1 con valor __declspec (los siguientes macros serían definidos como DeclMacro2, DeclMacro3 y así sucesivamente).
Durante la ingeniería directa, estos Valores Etiquetados son utilizados para volver a generar los macros en el código.
|
|
Definir Macros Complejos
|
A veces es útil definir reglas para macros complejos que pueden abarcar múltiples líneas; Enterprise Architect ignora la sección de código completa definida por la regla.
Tales macros pueden ser definidos en Enterprise Architect como en los siguientes dos ejemplos; ambos tipos pueden ser combinados en una definición.
Bloquear Macros
BEGIN_INTERFACE_PART ^ END_INTERFACE_PART
El símbolo ^ representa el cuerpo del macro - esto permite saltar de un macro a otro; los espacios que rodean el símbolo^ son necesarios.
Macros de Función
RTTI_EMULATION()
Enterprise Architect salta el símbolo incluyendo todo lo que está dentro del paréntesis.
|
|
Notas
•
|
Puede transportar estas definiciones de macro del lenguaje (o macro preprocesador) entre modelos, utilizando las opciones Exportar Datos de Referencia e Importar Datos de Referencia; los macros son exportados como una Lista de Macros
|
Aprender más
|