当我#include <arpa/inet.h>
Xcode在Expected identifier or '('
语句处生成错误#include
错误时,我正在尝试在BSD套接字之上实现网络接口。
snc_network.h
#ifndef __lib_Syncrology__snc_network__
#define __lib_Syncrology__snc_network__
#include "snc_def.h"
#include <arpa/inet.h>//Error Here:Expected identifier or '('
//Type Definations
typedef union
{
struct sockaddr_in6 in6_addr;
struct sockaddr_in in_addr;
struct sockaddr addr;
}snc_sockaddr_t;
#endif /* defined(__lib_Syncrology__snc_network__) */
snc_def.h
//Preprocessor Definations
#define __SYNCROLOGY_VERSION_NUMBER__ 0.0.1;
//Type Definitions
//Padding
typedef unsigned char snc_pad_t;
//Private;
typedef void snc_prv_t;
//snc Data Sturcture
typedef struct
{
uint16_t sncprot_id;
uint16_t sncprot_ref; //Refence Count
}snc_struct;
//Application Data
typedef struct
{
void *data;
size_t data_size;
}snc_appdata_t;
//Functions
//Null
bool snc_null(snc_struct *sncstruct);
//Reference Count
bool snc_retain(snc_struct *sncstruct);
void snc_release(snc_struct *sncstruct);
提前致谢。
答案 0 :(得分:4)
几乎可以肯定,由于行上的分号错误
#define __SYNCROLOGY_VERSION_NUMBER__ 0.0.1;
而且,从不使用以两个下划线开头的宏。那是C中未定义的行为。修复那个宏,以及你的包含守卫。
并且,永远不会以_t
结束变量,如果你的目标是POSIX:它们也是保留的。
答案 1 :(得分:1)
这个定义
SomeOtherEntity
错了,
首先它不应该有分号。其次,没有像@ManyToOne
答案 2 :(得分:0)
即使“#define SYNCROLOGY_VERSION_NUMBER 0.0.1;”这一行的分号是不必要的,它也不应该给出编译错误吗?
尝试在snc_def.h ... :)之前定义inet.h。
#include <arpa/inet.h>
#include "snc_def.h"