These fuctions do not need to include any header file to use them. So it provides faster usage, as these are Built-in functions of GCC compiler which is most used compiler, even in competitive programming.
Note: If the compiler shows warning of overflow, use casting before __builtin_inf() function as
(data_type)__builtin_inf()
- __builtin_inf(void): This function returns positive infinity which will then converted to DBL_MAX of C language limits.h header file Macro. Its return data type is double.
Example:if __builtin_inf() is used it returns infinte Output: inf
Here is a C++ program which shows the use of this function:
#include <iostream>
using
namespace
std;
int
main()
{
// infinite value (<b>inf</b>)
double
double_inf = __builtin_inf();
cout << double_inf << endl;
return
0;
}
chevron_rightfilter_noneOutput:inf
- __builtin_infd32(void): These function returns maximum value of 4-byte integer and return data type is 32-bit integer.
Example:
if __builtin_infd32() is used it returns the maximum value of the 32-bit integer Output: 2147483647
Here is a C++ program which shows the use of this function:
#include <iostream>
using
namespace
std;
int
main()
{
// function returns highest signed integer value
int
int_inf = (
int
)__builtin_infd32();
// you can use __builtin_inf() function
// as well and then cast to integer
int
int_inf2 = (
int
)__builtin_inf();
cout << int_inf << endl;
cout << int_inf2 << endl;
// function returns highest unsigned integer value
unsigned
int
unsinged_int_inf
= (unsigned
int
)__builtin_infd32();
// you can use __builtin_inf() function as well
// and then cast to unsigned integer
unsigned
int
unsinged_int_inf2
= (unsigned
int
)__builtin_inf();
cout << unsinged_int_inf << endl;
cout << unsinged_int_inf2 << endl;
return
0;
}
chevron_rightfilter_noneOutput:2147483647 2147483647 4294967295 4294967295
- __builtin_infd64(void): This function returns Highest value that can be represented by 8 byte integer which is highest value of integer we can use in C++.
Example:
if __builtin_infd64() is used it returns the maximum value of the 64-bit integer Output: 9223372036854775807
Here is a C++ program which shows the use of this function:
#include <iostream>
using
namespace
std;
int
main()
{
// highest signed 8 byte value
long
long
int
long_inf = (
long
long
int
)__builtin_infd64();
// you can use __builtin_inf() as well
// and then cast to long long int
long
long
int
long_inf2
= (
long
long
int
)__builtin_inf();
cout << long_inf << endl;
cout << long_inf2 << endl;
// highest unsiged 8 byte value
unsigned
long
long
int
unsigned_longlong_inf
= (unsigned
long
long
int
)__builtin_infd64();
// you can use __builtin_inf() as well
// and then cast to unsigned long long int
unsigned
long
long
int
unsigned_longlong_inf2
= (unsigned
long
long
int
)__builtin_inf();
cout << unsigned_longlong_inf << endl;
cout << unsigned_longlong_inf2 << endl;
return
0;
}
chevron_rightfilter_noneOutput:9223372036854775807 9223372036854775807 18446744073709551615 18446744073709551615
- __builtin_infd128(void): As the maximum size that can be used for integer is 64-bit in C/C++, this function give the same result as __builtin_infd64().
Example:
if __builtin_infd128() is used it returns the maximum value of the 64-bit integer Output: 9223372036854775807
- __builtin_inff(void): These function returns float maximum value means 4-byte maximum decimal point value.
Example:
if __builtin_inff() is used it returns the maximum value of the 32-bit float Output: inf
Here is a C++ program which shows the use of this function:
#include <iostream>
using
namespace
std;
int
main()
{
float
float_inf = __builtin_inff();
// you can use __builtin_inf() as well
// and then cast it to float data type
float
float_inf2 = (
float
)__builtin_inf();
cout << float_inf << endl;
cout << float_inf2 << endl;
return
0;
}
chevron_rightfilter_noneOutput:inf inf
- __builtin_infl(void): These function returns maximum long double data type value.
Example:
if __builtin_infl() is used it returns the maximum value of the long double type Output: inf
Here is a C++ program which shows the use of this function:
#include <iostream>
using
namespace
std;
int
main()
{
long
double
long_double_inf = __builtin_infl();
// you can use __builtin_inf() as well
// and then cast it to float data type
long
double
long_double_inf2
= (
long
double
)__builtin_inf();
cout << long_double_inf << endl;
cout << long_double_inf2 << endl;
return
0;
}
chevron_rightfilter_noneOutput:inf inf
- In the recent versions of GCC compiler, these are two new functions: __builtin_infn(void) & __builtin_infnx(void). One can replace n with 32 or 64 and it will return inf value respectively of 32-bit, 64-bit.
Similar article: Builtin functions of GCC compiler
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.