Skip to content
Related Articles

Related Articles

Improve Article
Runtime and Compile-time constants in C++
  • Last Updated : 19 Oct, 2020

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++




// 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;
}
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++




// 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;
}
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.

4If 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.
5It 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.

Want to learn from the best curated videos and practice problems, check out the C++ Foundation Course for Basic to Advanced C++ and C++ STL Course for foundation plus STL.  To complete your preparation from learning a language to DS Algo and many more,  please refer Complete Interview Preparation Course.



My Personal Notes arrow_drop_up
Recommended Articles
Page :