Не, это неправильно, потому что размер int на разных компах может быть разный. А есть ещё эндианство, которое так же может различаться. Но при одинаковом эндианстве уже на размере можешь получить ошибку.
abcd0x00: я указал в комментарии (см ниже), что так делать не стоит и нужно передавать данные структурой в унифицированном формате.
На x86 машинах будет int 32 бита, little endian. Если big endian я еще видел в powerPC, то 16-битный int вживую не встречал - подскажите, где его можно увидеть? :) (А вот с long проблема была, на линуксе он 64 бита оказался, забывать о такой возможности нельзя)
15432: я встречал разные int'ы (16, 32, 64), нельзя вообще на его размер полагаться (стандарт о размерах ничего не пишет, у него относительный размер, сравнимый с размерами других типов только). Но даже если немножко полагаться на какой-то конкретный размер, нельзя представлять его равным long int, потому что он колеблется между short int и long int равнозначно и запросто может оказаться short int, коим он и принимается, когда пишешь программу (держи в голове short int). А чему равен short int, когда long int равен 64 бита? Вот ты и не знаешь - толи 32 толи 16.
Написано
Войдите на сайт
Чтобы задать вопрос и получить на него квалифицированный ответ.