P*******b 发帖数: 1001 | 1 const int MaxEntries = 10;
extern int entries[MaxEntries];
这里MaxEntries到底对其他translation unit可不可用?
如果可以是因为entries[MaxEntries]吗?这是什么rule?
如果不可以,哪entries也会受到影响。 |
z****e 发帖数: 2024 | 2 1. C++里边,const是default internal linkage 的。if you want to use it for different
translation units, you must use extern for the definition.
2. the code you write can have "static initialization dependency". so it is
dangerous. |
P*******b 发帖数: 1001 | 3 dependency可以workaround的。
但是我的问题是MaxEntries在这种情况下到底可不可以被其他translation unit访问。
different
is
【在 z****e 的大作中提到】 : 1. C++里边,const是default internal linkage 的。if you want to use it for different : translation units, you must use extern for the definition. : 2. the code you write can have "static initialization dependency". so it is : dangerous.
|
y*c 发帖数: 904 | 4 这个可以测试一下吧。不过我猜测一下。MaxEntries 不能被别的unit使用因为没有
extern. entries可以,因为compiler知道他是extern,别的unit使用时会找到定义,
那么就同时找到MaxEntries定义。 |
z****e 发帖数: 2024 | 5 我不是回答你的问题了么?
【在 P*******b 的大作中提到】 : dependency可以workaround的。 : 但是我的问题是MaxEntries在这种情况下到底可不可以被其他translation unit访问。 : : different : is
|