Question: Is there a 64 bit type that in every OS(32/64 bit) and for every compiler has a size of 64?

The same question is also for 32 bit type. (It should be int?)

*The origin of the question is* : I am implementing the system which has 2 kinds of instructions :

1. 32 bit
2. 64 bit

I want to write something like:

```
typedef int instruction32bit;

typedef long long instruction64bit //it is not correct some system have sizeof(long long) = 128 

```

Answer: 
You are looking for `int64_t` and `int32_t`, or their unsigned friends `uint64_t` and `uint32_t`. Include either [`cinttypes`](http://en.cppreference.com/w/cpp/header/cinttypes) or [`cstdint`](http://en.cppreference.com/w/cpp/header/cstdint).
Use `uint_least32_t` and `uint_least64_t`. The fixed-size types `uint32_t` and `uint64_t` will not exist on systems that don't have the exact sizes they describe.