htonll/ntohll未定义
因为要传输的数据中有一个字段64-bit的地址,所以想到用htonll/ntohll解决字节序的问题,可是在编译的时候提示未定义,在头文件中我已经包含了netinet/in.h,所以不明白为什么还是赵不到Undefined first referenced
symbol in file
htonll /var/tmp//ccwBQuXK.o
ntohll /var/tmp//ccwBQuXK.o
ld: fatal: Symbol referencing errors. No output written to 32/test_solaris
collect2: ld returned 1 exit status
gmake: *** Error 1
另外,我看到/usr/include/sys/byteorder.h有如下代码
65 #if !defined(_XPG4_2) || defined(__EXTENSIONS__)
66 #define ntohll(x) (x)
67 #define htonll(x) (x)
68 #endif/* !_XPG4_2 || __EXTENSIONS__ */
请问(X)就可以自动地转换字节序了吗? ()当然不行
但是如果是大端系统的话,则不需要转,所以 = (x) 据说htonl/ntohl是转字内顺序的, 主要是unix和瘟毒死之间的转换(小机与页面)。
页:
[1]