Стандартный заголовок :
#include <arpa/inet.h>
Вам не нужно беспокоиться о других вещах, определенных в этом заголовке. Это не повлияет на ваш скомпилированный код и должно оказать лишь незначительное влияние на время компиляции.
РЕДАКТИРОВАТЬ: Вы можете проверить это. Создайте два файла, htonl_manual.c
// non-portable, minimalistic header
#include <byteswap.h>
#include <stdio.h>
int main()
{
int x = 1;
x = __bswap_32(x);
printf("%d\n", x);
}
и htonl_include.c:
// portable
#include <arpa/inet.h>
#include <stdio.h>
int main()
{
int x = 1;
x = htonl(x);
printf("%d\n", x);
}
Соберите их в -O1, затем возьмите разницу:
gcc htonl_manual.c -o htonl_manual.s -S -O1
gcc htonl_include.c -o htonl_include.s -S -O1
diff htonl_include.s htonl_manual.s
Для меня единственным отличием является имя файла.