// For a discussion see http://stackoverflow.com/q/23697560/228539
#include <stdio.h>
#include <stdint.h>
#include <string.h>
#define BUFFER_SIZE 10
#define ADDRESS 6
uint8_t buffer[BUFFER_SIZE] =
{
[ADDRESS] = 0x37,
[ADDRESS+1] = 0x42,
};
int main(void)
{
uint16_t a = buffer[ADDRESS] + (buffer[ADDRESS + 1]<<8);
uint16_t b = *(buffer + ADDRESS) + (*(buffer + ADDRESS + 1)<<8);
uint16_t c = *((uint16_t *) (buffer + ADDRESS));
uint16_t d;
memcpy(&d
, &buffer
[ADDRESS
], sizeof(d
));
return 0;
}
Ly8gRm9yIGEgZGlzY3Vzc2lvbiBzZWUgaHR0cDovL3N0YWNrb3ZlcmZsb3cuY29tL3EvMjM2OTc1NjAvMjI4NTM5CgojaW5jbHVkZSA8c3RkaW8uaD4KI2luY2x1ZGUgPHN0ZGludC5oPgojaW5jbHVkZSA8c3RyaW5nLmg+CgojZGVmaW5lIEJVRkZFUl9TSVpFIDEwCiNkZWZpbmUgQUREUkVTUyA2Cgp1aW50OF90IGJ1ZmZlcltCVUZGRVJfU0laRV0gPQp7CglbQUREUkVTU10gPSAweDM3LAoJW0FERFJFU1MrMV0gPSAweDQyLAp9OwoKaW50IG1haW4odm9pZCkKewoJdWludDE2X3QgYSA9IGJ1ZmZlcltBRERSRVNTXSArIChidWZmZXJbQUREUkVTUyArIDFdPDw4KTsKCXVpbnQxNl90IGIgPSAqKGJ1ZmZlciArIEFERFJFU1MpICsgKCooYnVmZmVyICsgQUREUkVTUyArIDEpPDw4KTsKCXVpbnQxNl90IGMgPSAqKCh1aW50MTZfdCAqKSAoYnVmZmVyICsgQUREUkVTUykpOwoJdWludDE2X3QgZDsKCW1lbWNweSgmZCwgJmJ1ZmZlcltBRERSRVNTXSwgc2l6ZW9mKGQpKTsKCQoJcHJpbnRmKCJhOiAweCV4XG4iLCBhKTsKCXByaW50ZigiYjogMHgleFxuIiwgYik7CglwcmludGYoImM6IDB4JXhcbiIsIGMpOwoJcHJpbnRmKCJkOiAweCV4XG4iLCBkKTsKCQoJcmV0dXJuIDA7Cn0K