您好,我是 gcc 内置原子函数的新手。我正在使用那个test-and-set
。您可以在这里找到参考
这是问题:
我已经完成了这段代码:
#define bool int
#define true 1
#define false 0
int main() {
bool lock = true;
bool val = __sync_lock_test_and_set(&lock, true);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
我打算做的是检查 的汇编指令__sync_lock_test_and_set
。我用过:
gcc -S [filename].c
Run Code Online (Sandbox Code Playgroud)
结果是:
.file "test_and_set.c"
.file "test_and_set.c"
.text
.globl main
.type main, @function
main:
.LFB0:
.cfi_startproc
pushl %ebp
.cfi_def_cfa_offset 8
.cfi_offset 5, -8
movl %esp, %ebp
.cfi_def_cfa_register 5
subl $16, %esp
movl $1, -8(%ebp)
movl $1, %eax
xchgl -8(%ebp), %eax
movl …
Run Code Online (Sandbox Code Playgroud) 嗨,我正在构建自己的GPU编程Haskell DSL版本,称为Accelerate.问题是关于infixl
声明:
这是代码片段:
infixl 3 :.
data tail :. head = tail :. head
deriving (Eq, Show)
Run Code Online (Sandbox Code Playgroud)
我认为这个片段非常简单明了,但当我尝试将其加载到ghci时,它失败了:
它报告说:
Illegal declaration of a type or class operator ‘:.’
Use TypeOperators to declare operators in type and declarations
Run Code Online (Sandbox Code Playgroud)
你对这个问题有什么看法吗?我正在使用的ghc版本是:
The Glorious Glasgow Haskell Compilation System, version 7.8.3
Run Code Online (Sandbox Code Playgroud)
谢谢!
嗨我在学习Haskell中的参数化类型主题时遇到了一个微不足道但令人筋疲力尽的问题.这是我的问题:
看这是定义Maybe
:
data Maybe a = Just a | Nothing
Run Code Online (Sandbox Code Playgroud)
我们使用这个:
Just "hello world"
Just 100
Run Code Online (Sandbox Code Playgroud)
但为什么不能只采取一个类型变量?
例如:
Just String
Just Int
Run Code Online (Sandbox Code Playgroud)
我知道这个问题很傻,但我还是想不出来......