Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Are there fixed size integers in GCC?

On the MSVC++ compiler, one can use the __int8, __int16, __int32 and similar types for integers with specific sizes. This is extremely useful for applications which need to work with low-level data structures like custom file formats, hardware control data structures and the like.

Is there a similar equivalent I can use on the GCC compiler?

like image 868
Pramod Avatar asked Nov 06 '08 17:11

Pramod


People also ask

What is size of INT in GCC?

The size of the “int” integer type is 4 bytes and the size of the “long long” integer type is 8 bytes for all the above combinations of operating system, architecture and compiler.

What is the size of GCC compiler in bit?

Mostly compiler(gcc or clang) of C and C++, nowadays come with default 64-bit version. Well it would be a good option in terms of speed purposes.

What is long in GCC?

With GCC, long integers are normally 32 bits long and long long integers are 64 bits long, but it varies with the computer hardware and implementation of GCC, so check your system's documentation. These integer types differ in the size of the integer they can hold and the amount of storage required for them.


1 Answers

ISO standard C, starting with the C99 standard, adds the standard header <stdint.h> that defines these:

uint8_t  - unsigned 8 bit
int8_t   - signed 8 bit
uint16_t - unsigned 16 bit
int16_t  - signed 16 bit
uint32_t - unsigned 32 bit
int32_t  - signed 32 bit
uint64_t - unsigned 64 bit
int64_t  - signed 64 bit

I use these types all the time.

These types are defined only if the implementation supports predefined types with the appropriate sizes and characteristics (which most do).

<stdint.h> also defines types with names of the form (u)int_leastN_t (types that have at least the specified width) and (u)int_fastN_t (the "fastest" types that have at least the specified width); these types are mandatory.

If you're using an old implementation that doesn't support <stdint.h>, you can roll your own; one implementation is Doug Gwyn's "q8".

like image 124
Jason Coco Avatar answered Oct 11 '22 00:10

Jason Coco