Linux的内核list.h和MSVC

时间:2016-06-02 10:26:35

标签: linux list visual-c++ visual-studio-2015 kernel

在跨平台项目上工作,我真的很想使用linux内核列表。

尽管Linux双链表(https://github.com/torvalds/linux/blob/master/include/linux/list.h)的实现并不涉及太多代码,但我想知道使用与GCC不同的编译器是否安全。

特别是,列表可以安全地使用MSVC编译器吗?是否有任何部分可能无法使用它?

1 个答案:

答案 0 :(得分:1)

双链表struct list_head的实现与编译器无关,可以与任何C89兼容的编译器一起使用thread-unsafe

通过该解释,WRITE_ONCE实现中的宏INIT_LIST_HEAD可以编码为简单赋值。 (最初,这个宏使用 volatile ,对于多线程程序,它在C标准中没有明确定义的语义)。