C++11 uint types vs u_int
Asked Answered
I

1

11

I just stumbled upon the type u_int8_t because it did not compile in Windows+MinGW (but compiled fine under Linux). According to this site the C++11 standard defines the type uint8_t. I just used the latter and everything worked.

The questions that arised are:

  1. Is there any difference between u_int8_t and uint8_t?
  2. Is there a reason (besides legacy code) to use u_int8_t?
  3. Is it safe to assume that uint8_t will be present if I use a C++11 compiler (on different OS or architectures)?
  4. Are the answers to the above questions also valid for the other types (intX_t and uintX_t)?
Idun answered 25/4, 2014 at 11:8 Comment(2)
possible duplicate of <cstdint> vs <stdint.h>Hasid
No. The question you mention deals with the difference between cstdint and stdint.h. The type u_int8_t is defined in sys/types.h. But this header is usually not available in Windows and/or MinGW.Idun
B
21

Is there any difference between u_int8_t and uint8_t?

u_int8_t is just a very old name that was not standardised. Avoid it.

Is there a reason (besides legacy code) to use u_int8_t?

Suicide by coworker.

Is it safe to assume that uint8_t will be present if I use a C++11 compiler (on different OS or architectures)?

The C++ standard requires it to be present on all implementations that have an unsigned 8-bit type available (today that means everything that is not exotic).

Are the answers to the above questions also valid for the other types (intX_t and uintX_t)?

Pretty much, yes.

Bowlin answered 25/4, 2014 at 11:13 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.