首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是否有一种方法来检查变量是否在编译时声明?

是否有一种方法来检查变量是否在编译时声明?
EN

Stack Overflow用户
提问于 2014-02-07 11:39:37
回答 2查看 135关注 0票数 0

我指的是这样的情况(当然,这只是错误代码/idea /我知道它不是那样工作的):

代码语言:javascript
复制
int main() {
  int my_int = 42;
  #ifdef my_int
    my_int = 43;
  #else
    int my_int = 43;
}

我知道c/c++程序不能看到变量的名称,也不能判断是否设置了变量,但编译器可以这样做。我在这里问,当编译器遇到相同块中有重复声明的情况时,是否可以将编译器定向到给定的操作,比如省略或插入代码片段。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-02-07 11:41:18

不是的。当您有重复声明时,唯一可能发生的事情是编译器错误。总是畸形的。因为预处理器不知道变量,所以你也不能使用它。

票数 6
EN

Stack Overflow用户

发布于 2014-02-07 11:42:19

不,不可能。即使有,使用它也会走向疯狂的道路。

如果您知道符号的声明是以某个已定义的常量为条件的,请在该常量上使用#ifdef来决定要做什么。

如果您不知道符号声明的条件是什么,那么您就不应该在这个符号上乱搞,因为它显然是在项目的外部。

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

https://stackoverflow.com/questions/21626815

复制
相关文章

相似问题

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