Estas funciones no necesitan incluir ningún archivo de encabezado para usarlas . Por lo tanto, proporciona un uso más rápido , ya que estas son funciones integradas del compilador GCC, que es el compilador más utilizado, incluso en la programación competitiva.
Nota: si el compilador muestra una advertencia de desbordamiento, use la conversión antes de la función __builtin_inf() como
(data_type)__builtin_inf()
1. __builtin_inf(void) : esta función devuelve un infinito positivo que luego se convertirá a DBL_MAX del archivo de encabezado de límites del lenguaje C.h Macro. Su tipo de datos de retorno es doble.
Ejemplo:
if __builtin_inf() is used it returns infinite Output: inf
Aquí hay un programa en C++ que muestra el uso de esta función:
C++
#include <iostream> using namespace std; int main() { // infinite value (<b>inf</b>) double double_inf = __builtin_inf(); cout << double_inf << endl; return 0; }
inf
2. __builtin_infd32(void) : esta función devuelve el valor máximo de un entero de 4 bytes y el tipo de datos devuelve un entero de 32 bits.
Ejemplo:
if __builtin_infd32() is used it returns the maximum value of the 32-bit integer Output: 2147483647
Aquí hay un programa en C++ que muestra el uso de esta función:
C++
#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; }
2147483647 2147483647 4294967295 4294967295
3. __builtin_infd64(void) : esta función devuelve el valor más alto que se puede representar mediante un entero de 8 bytes, que es el valor más alto del entero que podemos usar en C++.
Ejemplo:
if __builtin_infd64() is used it returns the maximum value of the 64-bit integer Output: 9223372036854775807
Aquí hay un programa en C++ que muestra el uso de esta función:
C++
#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 unsigned 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; }
9223372036854775807 9223372036854775807 18446744073709551615 18446744073709551615
4. __builtin_infd128(void) : Como el tamaño máximo que se puede usar para enteros es de 64 bits en C/C++, esta función da el mismo resultado que __builtin_infd64().
Ejemplo:
if __builtin_infd128() is used it returns the maximum value of the 64-bit integer Output: 9223372036854775807
5. __builtin_inff(void) : esta función devuelve el valor máximo flotante que significa un valor de punto decimal máximo de 4 bytes.
Ejemplo:
if __builtin_inff() is used it returns the maximum value of the 32-bit float Output: inf
Aquí hay un programa en C++ que muestra el uso de esta función:
C++
#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; }
inf inf
6. __builtin_infl(void) : esta función devuelve el valor de tipo de datos doble largo máximo.
Ejemplo:
if __builtin_infl() is used it returns the maximum value of the long double type Output: inf
Aquí hay un programa en C++ que muestra el uso de esta función:
C++
#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; }
inf inf
7. En las versiones recientes del compilador GCC, estas son dos funciones nuevas: __builtin_infn(void) & __builtin_infnx(void) . Uno puede reemplazar n con 32 o 64 y devolverá el valor inf respectivamente de 32 bits, 64 bits.
Artículo similar: funciones integradas del compilador GCC
Publicación traducida automáticamente
Artículo escrito por Aakash_Panchal y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA