我正在寻找一种原子地增加短路的方法,然后返回该值.我需要在内核模式和用户模式下执行此操作,因此它在C语言下,在Linux下,在Intel 32位架构上.不幸的是,由于速度要求,互斥锁不是一个好的选择.
有没有其他方法可以做到这一点?在这一点上,似乎唯一可用的选项是内联一些程序集.如果是这样的话,有人能指出我适当的指示吗?
我在Ada95工作,而且我很难搞清楚指针.
我的代码如下所示:
type vector is array (1 .. 3) of integer;
type vector_access is access vector;
my_vec : vector;
procedure test is
pointer : vector_access := my_vec'access;
begin
...
end;
Run Code Online (Sandbox Code Playgroud)
这无法编译指针的定义,说
"'ACCESS的前缀必须是对象的别名视图,或者表示具有非内在调用约定的子程序"
如果我然后将向量本身的定义更改为:
my_vec : aliased vector
Run Code Online (Sandbox Code Playgroud)
它现在返回编译器错误:
"X'ACCESS的预期类型,其中X表示对象的别名视图,必须是一般的访问类型"
在一天结束时,我真正需要的是指向数组中特定项的指针,该位置基于输入参数是动态的.谁能指出我正确的方向?