我一直在谷歌上搜索这个,并没有找到明确的答案,所以我希望有人对 Windows VS linux 中的共享内存段有一些了解。
在 Linux 中有两种为 IPC 创建共享内存的方法:共享内存段(shmget 等)和内存映射文件(mmap)。根据我的简要理解,mmap 要求您在操作系统中的某处有一个实际文件进行映射,而共享内存段只是内存中可以由进程附加到的基于名称的段。
在 Windows 中,似乎只有内存映射文件等价于您必须在某处浮动的实际文件。
我的问题:这实际上是 Windows 中唯一的共享内存,还是它有用于创建非基于文件的共享内存段的 api。
对象的2个初始化之间是否存在差异?
Object obj(constructor_arguments);
Run Code Online (Sandbox Code Playgroud)
要么
Object obj = Object(constructor_arguments);
Run Code Online (Sandbox Code Playgroud)
请注意,第二次初始化不是指向new运算符的指针.它旨在成为非堆变量.
在GCC中,编译和工作都很好,我想知道是否存在任何差异,或者两个语句在语义上是否相同.