首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在哪里创建了宏变量?和变量的大小?

在哪里创建了宏变量?和变量的大小?
EN

Stack Overflow用户
提问于 2013-12-27 18:34:01
回答 4查看 67关注 0票数 0

当我们像下面这样创建宏时,我对宏有疑虑

代码语言:javascript
复制
      #define DATA 40

在哪里可以创建数据?我还需要知道数据的大小和类型?

在java中,我们创建宏和数据类型,

那么宏函数呢?它们都是内联函数?

EN

回答 4

Stack Overflow用户

发布于 2013-12-27 18:36:15

宏本质上是文本替换。

DATA不存在于预处理阶段之外。编译器永远看不到它。因为没有创建变量,所以我们不能讨论它的数据类型、大小或地址。

票数 3
EN

Stack Overflow用户

发布于 2013-12-27 18:46:52

从字面上讲,宏被粘贴到代码中。它们不是“解析”的,而是扩展的。编译器看到的不是DATA,而是40。这就是为什么你必须小心,因为宏不像普通的函数或变量。参见gcc's documentation

宏是一段已命名的代码片段。每当使用该名称时,它都会替换为宏的内容。有两种宏。它们的主要不同之处在于它们在使用时的外观。类对象宏在使用时类似于数据对象,类函数宏类似于函数调用。

您可以将任何有效的标识符定义为宏,即使它是C关键字。预处理器对关键字一无所知。如果您希望对不理解关键字的旧编译器隐藏const之类的关键字,这将非常有用。但是,在编译C++时,定义的预处理器运算符(请参见Defined)永远不能定义为宏,并且C++的命名运算符(请参见C++命名运算符)不能是宏。

票数 2
EN

Stack Overflow用户

发布于 2013-12-27 18:36:03

宏不存在于您的最终可执行文件中。宏是在pre-processing阶段处理的compilation.You可以找到更多关于宏的here的信息

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

https://stackoverflow.com/questions/20799101

复制
相关文章

相似问题

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