【发布时间】:2016-10-24 10:13:01
【问题描述】:
#define MY_MACRO 3 --> in A.h
#define MY_MACRO 45 --> B.h
//In C.cpp
#include "A.h"
#include "B.h"
..
..
..
int my_value = MY_MACRO;
my_value 是 3 还是 45?
【问题讨论】:
-
你尝试了什么?发生了什么?
-
@AbdusSalamKhazi 如果你有一个巨大的项目,你不应该有 2 个不同值的宏。删除哪一个取决于具体情况。您应该仔细查看并删除不正确的。
-
只有你才能知道,通过研究和理解代码,并确定它应该如何表现。如果您出于某种原因(为什么?)无法做到这一点,请向团队中的同事寻求帮助。
-
@Asu - 很棒的建议!除非你错了。 C++ 不是说“试试看”的好语言,因为它有Undefined Behaviour。 (See paragraph 2)。但是,behaviour with gcc is to use the latter definition,这不是到处都能保证的!