>>140
とりあえずは文字列として表現するのが手っ取り早い。

char *add(char *a1, char *a2);

main(){add("123", "456");}

みたいな(中身を書くのは面倒臭いから勘弁。
また関数が返す値は関数内部で新規にメモリを
確保したとこに書く(形に実装したほうが手離れが良い?)から、
使用後は free するのをお忘れなく)。

それが嫌(速度・メモリ etc. の為)なら
その部分だけアセンブラで書くのが吉。