首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在.pch中使用#define

在.pch中使用#define
EN

Stack Overflow用户
提问于 2010-04-06 06:56:28
回答 2查看 423关注 0票数 0

如果我在预编译头文件中定义了一些东西,比如:

代码语言:javascript
复制
#define __BUILD_MAC__

然后在头文件中执行以下操作:

代码语言:javascript
复制
#ifdef __BUILD_MAC__
    typedef void*   HINSTANCE;
#endif

这应该是可行的。我知道这是因为当我编译的时候,我会收到关于HINSTANCE没有命名类型的错误。

要使这些定义可用,我还需要做些什么吗?

EN

回答 2

Stack Overflow用户

发布于 2010-04-06 07:14:57

在预编译头之前的任何定义都将被忽略。考虑通过编译器级别开关或via进行定义:

配置属性-> C/C++ ->预处理器->预处理器定义

You can read more on MSDN

当您使用预编译头时,编译器会忽略出现在hdrstop杂注之前的所有预处理器指令(包括编译指示)。由此类预处理器指令指定的编译必须与用于创建预编译头文件的编译相同。

对于GCC来说,预编译头是不一样的:

一旦看到第一个C标记,就不能使用预编译头。您可以在预编译头之前使用预处理器指令;您甚至可以在另一个头中包含预编译头,只要在#include之前没有C标记。

票数 1
EN

Stack Overflow用户

发布于 2010-04-06 07:15:46

确保__BUILD_MAC__在实际用于构建.pch的文件中为#defined,并且在.pch中包含最后一个标头之前。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2581672

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档