2012-06-28 24 views
7

IP & Mac adreslerini telefondan alan bir dizi işlevin parçası.'ether_ntoa' işlevinin örtük bildirimi geçersiz C99

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

DÜZENLEME: Eşdeğer bir işlev gerekli değil, yalnızca birkaç eksik başlık vardı.

DÜZENLEME: Bunu okurken, hata iletisi onun beyanı içermez sadece bu fonksiyon eksik olduğunu iddia değildir

+0

Bu, bir Mac OS X manpage olduğunu söylemesine rağmen iOS Geliştirme Kitaplığı'na dahil edilmiş gibi görünüyor. http://developer.apple.com/library/ios/#documentation/System/Conceptual/ManPages_iPhoneOS/man3/ether_ntoa.3.html – trojanfoe

+0

"Amcgregor" dan yardımcı olabilecek bu bağlantıdaki Objective C koduna bir göz atın. . https://gist.github.com/1265265 –

cevap

15

LLADDR (sdl) için döküm Added. (Ben mesajı farklı bir şikayeti Sadece bu değil, onun var bilmiyorum.) O yardımcı olur durumda

, man ether_ntoa söylüyor:

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

#include 'da eksik gibi görünüyor. Ancak şimdi yeni hatayı alıyorum: ''caddr_t' (aka 'char *') parametresine 'const struct ether_addr *'" 'parametresine geçmeyen uyumsuz işaretçi türleri. Sanırım bu bir dökümle ilgili hata mı? – Orchid

+0

"LLADDR" ile aşina değilim, ancak ether_ntoa parametresinin const yapılı ether_addr * olduğu söylendiği için, sorunun nedeni hakkında haklı olduğunuzu tahmin ediyorum. –

+3

Tamam, yukarıdaki yorumdaki hata, "LLADDR (sdl))' 'bir char *' döndürdüğü, ancak ether_ntoa() 'nın başka bir şey alması nedeniyle" ether_ntoa() "parametresine geçirilen bir tür hataydı. Alçıyla sabitlenmiş: ether_ntoa ((const struct ether_addr *) LLADDR (sdl))) ve hepsinin hala çalışıyor gibi görünüyor. – Orchid

0

Ben başlık dosyası ve kaynak kodu aşağıdaki dahil başarıyla derlendi:

#import <arpa/inet.h>