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

 

 


Tema destacado: ¿Eres nuevo? ¿Tienes dudas acerca del funcionamiento de la comunidad? Lee las Reglas Generales


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  #if 0 ¿Se ejecuta? (Resuelto)
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: #if 0 ¿Se ejecuta? (Resuelto)  (Leído 4,003 veces)
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
#if 0 ¿Se ejecuta? (Resuelto)
« en: 13 Abril 2021, 19:24 pm »

Código
  1. #if 0
  2. //Code
  3. #endif

Es mi duda, Se ejecuta o no se ejecuta el codigo, Lo comento por que estoy migrando parte de una funcion en programa a otro:

Linea 210 de https://github.com/JeanLucPons/BSGS/blob/master/BSGS.cpp

Código
  1. #if 0
  2.      pp.y.ModSub(&Gn[i].x,&pp.x);
  3.      pp.y.ModMulK1(&_s);
  4.      pp.y.ModSub(&Gn[i].y);           // ry = - p2.y - s*(ret.x-p2.x);  
  5. #endif

Hay varias partes del codigo asi, y mi pregunta es, si no se ocupan para que estan ahi? Si fueran referencia yo las hubiese comentado en lugar de poner ese if 0


Edit

Acabo de comprobarlo, No, no se ejecuta

Código
  1. #include<stdio.h>
  2.  
  3. int main(){
  4. int  i = 10;
  5. printf("%i\n",i);
  6. #if 0
  7. i = 200;
  8. #endif
  9. printf("%i\n",i);
  10. }

Código:
C:\codigos>testif.exe
10
10

¿Por que esta ahí entonces ese segmento de código?

Saludos!


« Última modificación: 13 Abril 2021, 22:48 pm por AlbertoBSD » En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: #if 0 ¿Se ejecuta?
« Respuesta #1 en: 13 Abril 2021, 19:44 pm »

Para eventualmente cambiarlo por #if 1 y recompilar, no conozco otra razon.


En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
EdePC
Moderador Global
***
Conectado Conectado

Mensajes: 2.042



Ver Perfil
Re: #if 0 ¿Se ejecuta?
« Respuesta #2 en: 13 Abril 2021, 19:53 pm »

Yo creo que debe ser para "distinguir" mejor esos "comentarios", o por facilidad de uso, dependiendo del editor de código puede ser más sencillo cambiar un caracter que seleccionar un conjunto de líneas y presionar cierta combinación de teclas para comentar/descomentar
En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.667


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: #if 0 ¿Se ejecuta?
« Respuesta #3 en: 13 Abril 2021, 22:10 pm »

Hola, no se ejecuta ese if justamente porque está comentado.

Las razones de porque está ahí pueden ser varias, puede ser porque el programador esté indicando algo, muchos programadores suelen dejar fragmentos de código como referencia de algo, inclusive algunos lo ponen para no olvidarse de que en esa línea se puede hacer alguna comparación, también puede ser por comunidad para el programador ya que debe haber estado haciendo pruebas y para no estar borrándolo simplemente lo deja ahí.

Es más ese if le puede servir como una ayuda de la pruebas que haga con el código y para saber que en esa línea/parte/función se puede hacer una comparación if, como también puede ser que esté ahí porque se lo haya olvidado de borrar.

Tal vez puede pasar que lo esté usando como un indicador de  que en ese mismo lugar debe insertar código que no existe en el código público y lo usa para las pruebas.


Saludos
« Última modificación: 13 Abril 2021, 22:15 pm por [D]aniel » En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: #if 0 ¿Se ejecuta?
« Respuesta #4 en: 13 Abril 2021, 22:16 pm »

Es una directiva condicional...
Sería más útil, añadir una constante en vez del 0... y aignar a la connstante el valor 0 o 1 según proceda.
En línea

Eternal Idol
Kernel coder
Moderador
***
Desconectado Desconectado

Mensajes: 5.935


Israel nunca torturó niños, ni lo volverá a hacer.


Ver Perfil WWW
Re: #if 0 ¿Se ejecuta?
« Respuesta #5 en: 13 Abril 2021, 22:24 pm »

Hola, no se ejecuta ese if justamente porque está comentado.

No; no se compila ese codigo por la sencilla razon de que la expresion despues del #if es 0.

https://docs.microsoft.com/en-us/cpp/preprocessor/hash-if-hash-elif-hash-else-and-hash-endif-directives-c-cpp?view=msvc-160
https://en.cppreference.com/w/cpp/preprocessor/conditional
En línea

La economía nunca ha sido libre: o la controla el Estado en beneficio del Pueblo o lo hacen los grandes consorcios en perjuicio de éste.
Juan Domingo Perón
AlbertoBSD
Programador y
Moderador Global
***
Desconectado Desconectado

Mensajes: 3.696


🏴 Libertad!!!!!


Ver Perfil WWW
Re: #if 0 ¿Se ejecuta?
« Respuesta #6 en: 13 Abril 2021, 22:47 pm »

Para eventualmente cambiarlo por #if 1 y recompilar, no conozco otra razon.

Si, es lo mas seguro.

No; no se compila ese codigo por la sencilla razon de que la expresion despues del #if es 0.

Si ya veo, ni siquiera genera el codigo en el ejecutable, el compilador lo ignora totalmente.

Yo creo que debe ser para "distinguir" mejor esos "comentarios", o por facilidad de uso, dependiendo del editor de código puede ser más sencillo cambiar un caracter que seleccionar un conjunto de líneas y presionar cierta combinación de teclas para comentar/descomentar

Si es lo que también pensé.

Muchas gracias a todos.

Saludos!
En línea

Serapis
Colaborador
***
Desconectado Desconectado

Mensajes: 3.348


Ver Perfil
Re: #if 0 ¿Se ejecuta? (Resuelto)
« Respuesta #7 en: 13 Abril 2021, 23:00 pm »

Como todas las directivas, que se compile o no y lo que se compile o no, depende de la propia directiva.
Las directivas, informan al compilador y ya el compilador valida lo que tenga que hacer con ella.

https://docs.microsoft.com/es-es/cpp/preprocessor/hash-if-hash-elif-hash-else-and-hash-endif-directives-c-cpp?view=msvc-160
En línea

Danielㅤ


Desconectado Desconectado

Mensajes: 1.667


🔵🔵🔵🔵🔵🔵🔵


Ver Perfil
Re: #if 0 ¿Se ejecuta? (Resuelto)
« Respuesta #8 en: 13 Abril 2021, 23:45 pm »


Gracias por la aclaración, tal cual así es.


Un abrazo
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines