2012-04-19 3 views
1

Может кто-нибудь сказать мне файл заголовка, которые будут использоваться для u_short и u_char и т.д.:Заголовок файла для u_short?

Я видел, как это используется в sys/socket.h:

typedef u_char  sa_family_t; 

Но когда я использовал этот заголовок в моей программе, это дает me error:

1>c:\program files\microsoft visual studio 10.0\vc\include\sys\socket.h(52): 
error C2146: syntax error : missing ';' before identifier 'sa_family_t' 

Я думаю, что решение - это включение заголовка, но я не знаю, что это за заголовок!

+0

Не совсем оконный кодер, но заголовок сокета на окнах обычно Winsock2.h – phb

+0

Правильно, я мог понять это. Теперь, когда я скомпилирую свою программу, она успешно компилируется, но при запуске я запускаю следующую ошибку: Module2.exe ': Loaded' C: \ Documents and Settings \ jhap1 \ Desktop \ NW_Diagnose \ Module2 \ Новая папка \ Module2 \ Debug \ Module2.exe ', загружены символы. 'Module2.exe': загружен 'C: \ WINNT \ system32 \ ntdll.dll', не удается найти или открыть файл pdb – bogusbonafide

+0

Если я запустил его как admin, он будет работать. – bogusbonafide

ответ

0

Header file for u_short?

Мы просто наращивали тестирование на менее часто используемых платформах. Мы столкнулись с аналогичной проблемой в Cygwin i686 с GCC 5.3 и -std=c++11. Код стабилен в течение примерно 15 лет (дайте или возьмите).

Я не могу найти для него стандартный заголовок.

оглавлению на OS X и Linux показывает u_short довольно распространена, даже несмотря на то 0 хитов под Cygwin сейчас (JUN 2016):

# Ununtu 
$ grep -IR "u_short" /usr/include | wc -l 
31 

# OS X 
$ grep -IR "u_short" /usr/include | wc -l 
122 

# Solaris 
$ /usr/gnu/bin/grep -IR "u_short" /usr/include/ | wc -l 
125 

И:

# Ubuntu 
$ grep -IR "u_short" /usr/include | grep typedef 
/usr/include/x86_64-linux-gnu/bits/types.h:typedef unsigned short int __u_short; 
/usr/include/x86_64-linux-gnu/sys/types.h:typedef __u_short u_short; 
/usr/include/rpc/types.h:typedef __u_short u_short; 
/usr/include/linux/coda.h:typedef unsigned short u_short; 

# OS X 
$ grep -IR "u_short" /usr/include | grep typedef 
/usr/include/netinet/ip_mroute.h:typedef u_short vifi_t;  /* type of a vif index */ 
/usr/include/netinet6/ip6_mroute.h:typedef u_short mifi_t;  /* type of a mif index */ 
/usr/include/sys/types.h:typedef unsigned short  u_short; 

# Solaris 
$ /usr/gnu/bin/grep -IR "u_short" /usr/include/ 2>/dev/null | grep typedef 
/usr/include/sys/types.h:typedef unsigned short u_short; 
/usr/include/rpcsvc/nfs_acl.h:typedef u_short o_mode; 

Вы должны быть безопасными с литой до unsigned short или, возможно, uint16_t (на Unix и Linux от <stdint.h>), а не u_short.

Смежные вопросы