等价于 protobuf 中的 #ifdef 语法

Posted

技术标签:

【中文标题】等价于 protobuf 中的 #ifdef 语法【英文标题】:Equivalent of #ifdef syntax in protobuf 【发布时间】:2016-04-14 14:12:22 【问题描述】:

protobuf 消息中的 #ifdef 等价物是什么?我在语言指南https://developers.google.com/protocol-buffers/docs/proto

中找不到任何内容

【问题讨论】:

【参考方案1】:

Protobuf 语言本身没有内置任何内容,但您当然可以在将 .proto 文件传递​​给 protoc 之前对它们运行 C 预处理器。在 Unix 系统上:

cpp -P src.proto > preprocessed.proto
protoc preprocessed.proto

cpp(随您的 C 编译器提供)将评估 #ifdef 和其他 C 预处理器指令(任何以 # 开头的指令)并输出带有结果的新文件。

-P 选项可防止预处理器输出用于 C 编译器的调试信息指令,protoc 无法理解。)

【讨论】:

以上是关于等价于 protobuf 中的 #ifdef 语法的主要内容,如果未能解决你的问题,请参考以下文章

宏调用中的 #ifdef 适用于 gcc,但不适用于 msvc

OC语法简写

protobuf3基础语法

正则表达式-语法元字符

Scala:代码仅在调试时运行(#ifdef 等效?)

日常Java练习题(方舟最新系列1)