Простейший C / C ++ любой компилятор / стандартное совместимое решение, было упомянуто @leftaroundabout в комментариях выше:
int x = *(int*)"abcd";
Или чуть более конкретно:
int x = *(int32_t*)"abcd";
Еще одинрешение, также совместимое с любым компилятором / стандартом C / C ++ (кроме clang ++, у которого есть известная ошибка ):
int x = ((union {char s[5]; int number;}){"abcd"}).number;
/* just a demo check: */
printf("x=%d stored %s byte first\n", x, x==0x61626364 ? "MSB":"LSB");
Здесь строковый литерал "abcd" преобразуется в массив, затеманонимное объединение используется для придания красивого имени символа нужному числовому результату.