htonl
функция объявлена в <arpa/inet.h>
. Если у вас есть правильный #include
для этого заголовка:
#include <arpa/inet.h>`
декларация
uint32_t htonl(uint32_t hostlong);
будет видно, так что компилятор знает, ожидаемый тип аргументов и тип результата.
Если вы хотите, чтобы передать значение 5
функции htonl
, просто передать его:
uint32_t result = htonl(5);
Константа 5
имеет тип int
. Компилятор будет генерировать неявное преобразование от int
до uint32_t
. (Это, вероятно, преобразование не будет на самом деле нужно сделать что-нибудь.)
Если значение 5
хранится в int
объекта, это то же самое:
int n = 5;
uint32_t result = htonl(n);
Нет явного преобразования (CAST) необходимо ,
(Кстати, есть важное различие между «int
» и «целое». Есть целый ряд целочисленных типов, в том числе short
, unsigned long
, uint32_t
, и так далее. int
это название одного из этих типов. unsigned long
значение is целое.)
Можете ли вы принять ответ Кита, чтобы я мог удалить мою? Это вводит в заблуждение, я не должен был отвечать на это. –
Я имею в виду, что ответ не имеет ничего плохого, просто в вашем случае вам действительно не нужен бросок. –
@iharob Сделано. Благодаря!! – themacexpert