Yes, you can use regular integers, but you got to, then, use "clever" logic to figure out when one of the first few calculations overflowed and ends up needing to add or subtract a carry from one number to the next. It's not terribly hard to do, but it's a bit more complex than using a byte array where the decision is very simple if you overflowed or not.
And, no, you can't perform individual calculations using standard operators, you have to make function calls like this:
This is why C++ would make life much easier, because you could just assign b and c using "=" and use a = b + c to perform the calculation - but you can't do that since you are strictly bound to C.
int128 a, b, c;
Add(&a, &b, &c);