Diferentes formas de declarar variable como constante en C y C++

Hay muchas maneras diferentes de hacer que la variable sea constante.

  1. Uso de la palabra clave const : la palabra clave const especifica que el valor de una variable u objeto es constante y no se puede modificar en el momento de la compilación.

    // C program to demonstrate const specifier
    #include <stdio.h>
    int main()
    {
        const int num = 1;
      
        num = 5; // Modifying the value
        return 0;
    }
    It will throw as error like:
    error: assignment of read-only variable ‘num’
    
  2. Uso de la palabra clave enum : la enumeración (o enumeración) es un tipo de datos definido por el usuario en C y C++. Se utiliza principalmente para asignar nombres a constantes integrales, que hacen que un programa sea fácil de leer y mantener.

    // In C and C++ internally the default
    // type of 'var' is int
    enum VARS { var = 42 };
      
    // In C++ 11 (can have any integral type):
    enum : type { var = 42; }
      
    // where mytype = int, char, long etc.
    // but it can't be float, double or
    // user defined data type.

    Nota: Los tipos de datos de enumeración son, por supuesto, limitados, como podemos ver en el ejemplo anterior.

  3. Uso de la palabra clave constexpr : el uso de constexpr en C++ (no en C) se puede usar para declarar la variable como una constante garantizada. Pero fallaría al compilar si su inicializador no es una expresión constante.

    #include <iostream>
      
    int main()
    {
        int var = 5;
        constexpr int k = var;
        std::cout << k;
        return 0;
    }

    El programa anterior arrojará un error, es decir,

    error: the value of ‘var’ is not usable in a constant expression

    porque la variable ‘var’ en expresión no constante. Por lo tanto, para que sea constante, debemos declarar la variable ‘var’ con la palabra clave const .

  4. Uso de macros : también podemos usar macros para definir constantes, pero hay una trampa,
    #define var 5

Publicación traducida automáticamente

Artículo escrito por GeeksforGeeks y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *