# Byte Order
> Platform [byte order][endianness].
## Usage
```javascript
var BYTE_ORDER = require( '@stdlib/os/byte-order' );
```
#### BYTE_ORDER
Platform byte order.
```javascript
console.log( BYTE_ORDER );
// =>
```
## Notes
- The following values are possible:
- `'little-endian'`
- `'big-endian'`
- `'mixed-endian'` (also known as "middle-endian")
- `'unknown'`
## Examples
```javascript
var BYTE_ORDER = require( '@stdlib/os/byte-order' );
if ( BYTE_ORDER === 'little-endian' ) {
console.log( 'Least significant byte comes first...' );
} else if ( BYTE_ORDER === 'big-endian' ) {
console.log( 'Most significant byte comes first...' );
} else {
console.log( 'This is uncommon...' );
}
```
* * *
## C APIs
### Usage
```c
#include "stdlib/os/byte_order.h"
```
#### STDLIB_OS_ORDER_LITTLE_ENDIAN
Macro for an arbitrary constant indicating little-endian order.
```c
#if defined(STDLIB_OS_BYTE_ORDER) && STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_LITTLE_ENDIAN
// Do something for little-endian...
#endif
```
If compiled on an unrecognized/unsupported platform, the macro is **not** defined.
#### STDLIB_OS_ORDER_BIG_ENDIAN
Macro for an arbitrary constant indicating big-endian order.
```c
#if defined(STDLIB_OS_BYTE_ORDER) && STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_BIG_ENDIAN
// Do something for big-endian...
#endif
```
If compiled on an unrecognized/unsupported platform, the macro is **not** defined.
#### STDLIB_OS_BYTE_ORDER
Macro which equals either `STDLIB_OS_ORDER_LITTLE_ENDIAN` or `STDLIB_OS_ORDER_BIG_ENDIAN` (or host defined) depending on the resolved platform byte order.
```c
#if defined(STDLIB_OS_BYTE_ORDER)
#if STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_LITTLE_ENDIAN
// Do something for little-endian...
#elif STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_BIG_ENDIAN
// Do something for big-endian...
#endif
#endif
```
If compiled on an unrecognized/unsupported platform, the macro is **not** defined.
### Examples
```c
#include "stdlib/os/byte_order.h"
#include
int main() {
#if defined(STDLIB_OS_BYTE_ORDER)
#if STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_LITTLE_ENDIAN
printf( "Platform is little-endian...\n" );
#elif STDLIB_OS_BYTE_ORDER == STDLIB_OS_ORDER_BIG_ENDIAN
printf( "Platform is big-endian...\n" );
#else
printf( "Platform endianness is either mixed-endian or unknown...\n" )
#endif
#endif
}
```
* * *
## CLI
### Usage
```text
Usage: byte-order [options]
Options:
-h, --help Print this message.
-V, --version Print the package version.
```
### Examples
```bash
$ byte-order
```
[endianness]: https://en.wikipedia.org/wiki/Endianness