免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1811 | 回复: 2

预编译请教 [复制链接]

论坛徽章:
0
发表于 2013-10-08 09:56 |显示全部楼层
在 某C文件中 有如下 代码:

......
/*--- End of included file: packet-goose-hf.c ---*/
#line 50 "../../asn1/goose/packet-goose-template.c"           ----> 1

/* Initialize the subtree pointers */
static int ett_goose = -1;


/*--- Included file: packet-goose-ett.c ---*/
#line 1 "../../asn1/goose/packet-goose-ett.c"          -----> 2
static gint ett_goose_GOOSEpdu = -1;
static gint ett_goose_GSEMngtPdu = -1;
static gint ett_goose_RequestResponse = -1;
static gint ett_goose_GSEMngtRequests = -1;
static gint ett_goose_GSEMngtResponses = -1;
static gint ett_goose_GetReferenceRequestPdu = -1;
static gint ett_goose_T_getReferenceRequestPDU_offset = -1;
static gint ett_goose_GetElementRequestPdu = -1;
static gint ett_goose_T_references = -1;
static gint ett_goose_GSEMngtResponsePdu = -1;
static gint ett_goose_PositiveNegative = -1;
static gint ett_goose_T_responsePositive = -1;
static gint ett_goose_SEQUENCE_OF_RequestResults = -1;
static gint ett_goose_RequestResults = -1;
static gint ett_goose_IECGoosePdu = -1;
static gint ett_goose_SEQUENCE_OF_Data = -1;
static gint ett_goose_Data = -1;

/*--- End of included file: packet-goose-ett.c ---*/
#line 55 "../../asn1/goose/packet-goose-template.c"  ---------->3

/*--- Included file: packet-goose-fn.c ---*/
#line 1 "../../asn1/goose/packet-goose-fn.c"        ---------->4
/*--- Cyclic dependencies ---*/
.......

以上与编译指令 到底是何意思?
例如 标记1 处 ,是指 此处包含 packet-goose-template.c 的 第50行吗?  还是 从此处开始代表 packet-goose-template.c 的第 50行,即 源文件已改为 packet-goose-template.c  ?

论坛徽章:
2
摩羯座
日期:2013-10-10 14:29:04天蝎座
日期:2014-01-03 09:14:49
发表于 2013-10-08 11:52 |显示全部楼层
> 以上与编译指令 到底是何意思?
> 例如 标记1 处 ,是指 此处包含 packet-goose-template.c 的 第50行吗?  还是 从此处开始代表 packet-goose-template.c 的第 50行,即 源文件已改为 packet-goose-template.c  ?

摘自《C语言解析教程》附录B

形式为

#line intergral_constant "filename"

的预处理指令使得编译器对原文本重编号,为下一行设定一个特定的常量,并认为当前文件名是filename。

论坛徽章:
0
发表于 2013-10-27 22:33 |显示全部楼层
重定义当前行和重命名当前文件的.

> 例如 标记1 处......

表示,标记1处重定义为文件的第50行,该文件名重命名为packet-goose-template.c(真实的文件名和该行标号可能不是这个).
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP