问 题 在百度百科上关于_int64这种数据类型有这么一句话: 警告 在 32 位 Intel 计算机上分配 64 位值不是原子操作;即该操作不是线程安全的。这意味着,如果两个人同时将一个值分配给一个静态 Int64 字段,则该字段的最终值是无法预测的。 不是很理解这段话的意思。。。有什么通俗简单的解释么? 解决方案 就是32位计算机上,对_int64类型的变量赋值或取值,在CPU指令的层级,是两步操作,分别写或读内存的前32位和后32位。如果在这2个CPU指令之间,其他线程对这个变量进行读写,就会发生并发问题。 例如: 线程1先写了变量的前32位, 这时线程2写了变量的前32位和后32位, 接下来线程1写了变量的后32位。 最终结果,内存的前32位是线程2写的,后32位是线程1写的。最终内存中的数据是一个完全错误的数据。
以下是关于 vs2015 的编程技术问答
问 题 学习一段时间c后 用vs2015编写的小程序,代码如下: //14-9.c #include "stdafx.h" #include #include #include #include #include "14-9.h" int main() { int flight; char choice; struct plane seat[FLIGHTNUM][SEATS]; FILE *data; Process mode[5] = { show_empty_number,show_empty_list,show_alphabetical_list,add_assign,del_assign }; if (fopen_s(&data, "SeatsData.dat", "r") == 0) { for (int f