“共享”的并且&ndquo; __ gshared” D

中的关键字 如果不在
static
上下文中使用(也就是说,当
static
关键字不存在,并且您不在全局范围内时),
shared
__gshared
关键字有什么作用? 例子:
struct Temp
{
       shared int i;
    __gshared int j;
}
    
已邀请:
共享的int是键入的
shared(int)
,除了给它那种类型之外什么都不做。
__gshared int
是无操作 - DMD喜欢忽略无操作属性。     
D2默认为线程本地存储,而C,C ++和D1默认为全局存储。 其中一个区别是D中的全局变量对其他线程可见,而TLS则不可见。 这可能听起来不是很多,但尝试连接到C库而没有意识到这一点。 (不可变的是。全局的) IME __gshared几乎只存在于通常情况下不会强制进入全局的东西。 可能还有其他用途,但我没有看到任何用途。 一个例子是C头中的全局变量。如果您尝试与它进行交互,则需要不可变或__gshared。当然还有其他方法,但这可能是最简单的方法。     

要回复问题请先登录注册