Указание типов аргументов функций на примере bind () - C (СИ)
Формулировка задачи:
gcc version 4.2.1 20070719
почему при таком вызове компилер генерирует warning: passing argument 2 of 'bind' from incompatible pointer type
нагуглил вот что:
If we omit the cast "(struct sockaddr *)," the C compiler generates a warning of the form "warning: passing arg 2 of ’bind’ from incompatible pointer type," assuming the system’s headers have an ANSI C prototype for the bind function.
но ясности всё равно никакой.
заранее благодарю.
#include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> struct sockaddr_in address; ... ... ... bind(sock,&address,sizeof(address)); ... ... ...
Решение задачи: «Указание типов аргументов функций на примере bind ()»
textual
Листинг программы
const int optval = 1; setsockopt(sockfd, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(int)); - естьм ответ на мой вопрос
Объяснение кода листинга программы
Ваш код выполняет следующие действия:
- Объявляет константную переменную
optval
типаint
со значением 1. - Вызывает функцию
setsockopt()
для установки опции сокета. - Передает в функцию
setsockopt()
следующие аргументы:sockfd
: дескриптор сокета, который должен быть повторно использован.SOL_SOCKET
: уровень сокета, на котором будет применяться опция.SO_REUSEADDR
: опция сокета, которую нужно установить.&optval
: указатель на переменнуюoptval
, которая содержит значение опции.sizeof(int)
: размер переменнойoptval
в байтах, который используется для правильной передачи значения опции в функцию. Таким образом, код устанавливает опциюSO_REUSEADDR
для указанного сокета на значение 1, что позволяет повторно использовать адрес привязки сокета.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д