elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Security Series.XSS. [Cross Site Scripting]


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  const vs define
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: const vs define  (Leído 2,012 veces)
turinga18

Desconectado Desconectado

Mensajes: 1


Ver Perfil
const vs define
« en: 15 Agosto 2017, 17:53 pm »

Hola, soy principante en programación y realizando un ejercicio en C, me ha surgido una duda. ¿Qué diferencia existe entre define y const? ¿Cuándo he de utilizar una u otra?¿Por qué?

Muchas gracias de antemano.


En línea

engel lex
Moderador Global
***
Desconectado Desconectado

Mensajes: 15.514



Ver Perfil
Re: const vs define
« Respuesta #1 en: 15 Agosto 2017, 19:16 pm »

const declara un espacio estático de memoria dentro del programa, define es una directiva (macro) de preprocesador que lo que hace es sobreescribir el codigo antes de compilar...
 
ejemplo de define...

este programa

Código
  1. #define mult( f1, f2 ) ( f1 * f2 )
  2. #define valor 50
  3.  
  4. int main(){
  5.  
  6.  int a = 1;
  7.  int b = valor;
  8.  
  9.  int c = mult(a,b);
  10.  
  11.  return 0;
  12. }

si estás en linux, puedes usar el comando gcc -E archivo.c para que en lugar de compilar, te muestre el archivo despues de ser pasado por el preprocesador, verás que se covierte en

Código
  1. int main(){
  2.  
  3.  int a = 1;
  4.  int b = 50;
  5.  
  6.  int c = ( a * b );
  7.  
  8.  return 0;
  9. }

y esto ultimo será lo que se compile


En línea

El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
MAFUS


Desconectado Desconectado

Mensajes: 1.603



Ver Perfil
Re: const vs define
« Respuesta #2 en: 16 Agosto 2017, 16:28 pm »

De igual forma, como const son "variables" no se pueden usar para crear arrays por el hecho de que en C no se pueden dimensionar arrays con variables (después hay compiladores con extensiones que si dejan), pero por otra parte los debuggers y otros programas de desarrollo sí pueden controlar estos datos.
Los defines, al ser parte del fuente no se pueden controlar por los debuggers pero sí pueden ser usados para dimensionar arrays, pues el compilador ve un número.
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
define y if defined
PHP
Servia 2 3,335 Último mensaje 7 Julio 2009, 13:35 pm
por Servia
¿Que es preferible? Define o variable global
Programación C/C++
Komodo 4 3,611 Último mensaje 11 Septiembre 2010, 21:23 pm
por 16BITBoy
Define en C
Programación C/C++
mapers 1 4,681 Último mensaje 23 Abril 2011, 16:19 pm
por Garfield07
Es eficiente usar #define
Programación C/C++
anonimo12121 5 3,148 Último mensaje 3 Octubre 2012, 14:14 pm
por anonimo12121
Proyecto 5G-Crosshaul define red de transporte 5G gestionada en la nube
Noticias
wolfbcn 0 1,228 Último mensaje 1 Junio 2018, 21:29 pm
por wolfbcn
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines