#include语句出现意外错误

时间:2015-07-21 08:25:42

标签: c xcode xcode6 c-preprocessor

问题

当我#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);

提前致谢。

3 个答案:

答案 0 :(得分:4)

几乎可以肯定,由于行上的分号错误

#define __SYNCROLOGY_VERSION_NUMBER__ 0.0.1;

而且,从不使用以两个下划线开头的宏。那是C中未定义的行为。修复那个宏,以及你的包含守卫。

并且,永远不会_t结束变量,如果你的目标是POSIX:它们也是保留的。

答案 1 :(得分:1)

这个定义

SomeOtherEntity

错了,

首先它不应该有分号。其次,没有像@ManyToOne

这样的pp-token类型

答案 2 :(得分:0)

即使“#define SYNCROLOGY_VERSION_NUMBER 0.0.1;”这一行的分号是不必要的,它也不应该给出编译错误吗?

尝试在snc_def.h ... :)之前定义inet.h。

#include <arpa/inet.h>
#include "snc_def.h"