Runtime and Compile-time constants in C++

Run-time Constant:

These are the constants whose respective values can only be known or computed at the time of running of source code. Run time Constants are a bit slower than compile-time constants but are more flexible than compile-time constants. However, once it is initialized, the value of these constants can’t be changed.

Below is the program for illustration of Runtime constants:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate
// Run-time Constants
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    // Input a variable
    double electonmass;
    cin >> electonmass;
  
    // Define a constant
    // and initialize it at
    // run-time
    const double electon_mass{ electonmass };
  
    // Known to the compiler
    // at the run-time
    cout << electon_mass << endl;
  
    return 0;
}

chevron_right


Output:

2.07335e-317

Compile-time Constant:



These are the constants whose respective value is known or computed at the time of compilation of source code. Compile-time constants are faster than run-time constants but are less flexible than run-time constants.

Below is the program for illustration of Compile-time Constant:

C++

filter_none

edit
close

play_arrow

link
brightness_4
code

// C++ program to illustrate
// compile-time constants
#include <iostream>
using namespace std;
  
// Driver Code
int main()
{
    // Declare and initialize
    // compile time constant
    const double electron_q{ 1.6e-19 };
  
    // Value known to compiler
    // at compile-time
    cout << electron_q << endl;
  
    return 0;
}

chevron_right


Output:

1.6e-19

Difference between Run-time and Compile-time constants

                            Compile-time constants                                      Run-time constants                  
1. A compile-time constant is a value that is computed at the compilation-time.  Whereas, A runtime constant is a value that is computed only at the time when the program is running.
2. A compile-time constant will have the same value each time when the source code is run.

A runtime constant can have a different value each time the source code is run.

3

It is generally used while declaring an array size.

It is not preferred for declaring an array size.

4 If you use const int size = 5 for defining a case expression it would run smoothly and won’t produce any compile-time error. Here, if you use run-time constant in your source code for defining case expression then it will yield a compile-time error.
5 It does not produces any compile time error when used for initializing an enumerator.

Same compilation error, if runtime constant is used for initializing an enumerator.

Rated as one of the most sought after skills in the industry, own the basics of coding with our C++ STL Course and master the very concepts by intense problem-solving.




My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.