Почему так много пользовательских типов данных в C? - PullRequest
0 голосов
/ 24 сентября 2018

Почему существует так много пользовательских типов данных, как socklen_t, ssize_t, size_t, uint16_t?Я не понимаю реальной необходимости в них.Для меня это просто набор новых имен переменных, которые нужно выучить.

Ответы [ 2 ]

0 голосов
/ 24 сентября 2018

Во-первых, он обеспечивает большую читабельность .

Во-вторых, при программировании для встроенных систем или кроссплатформенности или в тех случаях, когда важна переносимость, необходимо четко указывать размер данных.тип, который вы используете - использование этих определенных типов данных позволяет избежать путаницы и гарантированно иметь определенную ширину данных.

0 голосов
/ 24 сентября 2018

Намерение и переносимость.

Например, допустим, у меня есть переменная unsinged n.Целое число без знака может представлять многие вещи, поэтому его намерение неясно.Но когда я пишу size_t n, становится ясно, что n представляет размер чего-либо.Когда я пишу socklen_t n, становится ясно, что n представляет длину чего-либо, связанного с сокетом.

Вторая причина - это переносимость.Например, socklen_t гарантированно будет не менее 32 бит.Теперь, если мы просто напишем unsigned n, тогда размер n может быть меньше 32 бит.size_t может содержать размер любого объекта, но фактическое значение определяется реализацией.Когда мы используем простое целое число, может случиться так, что sizeof(int) не сможет удержать размер самого большого объекта, который теоретически возможен.Но при использовании size_t такой проблемы с переносимостью не возникает.

uint16_t ясно говорит о том, что это целое число без знака из 16 битов, которое является одновременно ясным и переносимым, чем использование unsigned int или unsigned short.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...