我想在FreeBSD 10.1版本使用原子能的C
鏗鏘3.6.1,但是當我嘗試編譯在atomic_flag
變量使用ATOMIC_FLAG_INIT
程序在struct
我初始化一個原子標誌獲得error: expected expression
。在malloc分配結構
這是我正在編譯的程序。
#include <stdio.h>
#include <stdatomic.h>
struct map
{
atomic_flag flag;
};
int main(void)
{
struct map *m = malloc(sizeof(struct map));
m->flag = ATOMIC_FLAG_INIT;
free(m);
return 0;
}
我可以使用atomic_flag
外structs
像下面而不是在structs
的例子,所以你怎麼C
structs
使用原子變量?
#include <stdio.h>
#include <stdatomic.h>
int main(void)
{
atomic_flag flag = ATOMIC_FLAG_INIT;
return 0;
}
你是否知道'm'是未初始化的? – Olaf
是的,但即使初始化結構,你也會得到相同的編譯器錯誤。 – 2trill2spill
我應該把它標記爲「note」。當然,這並不能解決錯誤。但是,如果你創建一個自動變量呢? – Olaf