2012-06-28 26 views
7

Đó là một phần của một loạt chức năng truy xuất địa chỉ IP & Mac từ điện thoại.Tuyên bố ngầm định về chức năng 'ether_ntoa' không hợp lệ trong C99

strcpy(temp, (char *)ether_ntoa((const struct ether_addr *)LLADDR(sdl))); 

EDIT: Không có chức năng tương đương cần thiết, chỉ có một vài tiêu đề bị thiếu.

Chỉnh sửa: thêm đúc để LLADDR (SDL)

+0

Dường như đó là, mặc dù đó là manpage của Mac OS X, nó được đưa vào Thư viện phát triển iOS. http://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/ether_ntoa.3.html – trojanfoe

+0

Hãy xem mã C Mục tiêu tại liên kết này có thể giúp bạn từ "tổng hợp" . https://gist.github.com/1265265 –

Trả lời

15

Như tôi đã đọc nó, thông báo lỗi không cho rằng chức năng là mất tích, duy nhất mà bạn không bao gồm tuyên bố của mình. (Tôi không biết rằng nó tồn tại, chỉ rằng thông điệp có một khiếu nại khác nhau.)

Trong trường hợp nó giúp, man ether_ntoa nói với tôi:

#include <sys/types.h> 
#include <sys/socket.h> 
#include <net/ethernet.h> 
+0

Có vẻ như tôi đã bỏ lỡ #include . Tuy nhiên bây giờ tôi nhận được lỗi mới: '" Các kiểu con trỏ không tương thích truyền 'caddr_t' (aka 'char *') thành tham số của kiểu 'const struct ether_addr *' "'. Tôi đoán đây là lỗi liên quan đến truyền? – Orchid

+0

Tôi không quen thuộc với 'LLADDR' nhưng, vì tham số' ether_ntoa' được gọi là 'const struct ether_addr *', tôi đoán bạn đúng về nguyên nhân của vấn đề. –

+3

Ok, lỗi trong nhận xét ở trên là lỗi kiểu với thông số được chuyển đến 'ether_ntoa()', vì 'LLADDR (sdl))' trả về 'char *' nhưng 'ether_ntoa()' lấy một thứ khác. Cố định với dàn diễn viên: 'ether_ntoa ((const struct ether_addr *) LLADDR (sdl)))' và tất cả dường như vẫn đang hoạt động. – Orchid

0

tôi bao gồm sau tập tin header và mã nguồn được biên dịch thành công:

#import <arpa/inet.h> 
Các vấn đề liên quan