[2] 問題文(含コード&リンク):
char 配列のバイナリから、int 型へ変換しなさい。
------------------------------ >8 ------------------------------
char str[2] = { 0x00, 0x06 };
// => int result = 6

char str[2] = { 0x04, 0xD2 };
// => int result = 1234
------------------------------ >8 ------------------------------

[3] 環境
 [3.1] OS: Linux / Windows
 [3.2] コンパイラ名とバージョン: gcc (4.x) / Microsoft Visual Studio
 [3.3] 言語: C (or C++)
[4] 期限:無期限
[5] その他の制限: Linux / Windows ... 処理系依存なしでお願いします。

--

ビット演算を駆使して実装することはできましたが
よりスマートな解法があるんじゃないかと思い質問しました。
たとえば
 str[2] = { 0x06, 0x00 };
であれば
 int result = *(unsigned short *)str;
で、求めることができます。(リトルエンディアン環境のみ)
このような感じで、スマートでかつ処理系に依存しない方法はありますか?
よろしくお願いします。