程序被写入高级语言,然后高级语言被转换为机器语言,这是一组操作码。我想问为什么有些程序与Windows兼容,有些程序与MAC兼容,因为在编译时它们只是操作码。
答案 0 :(得分:0)
因为程序依赖于操作系统中已有的功能,如ReadFile或ShowMessage,而某些操作系统具有不同的架构,因此它们具有不同的功能。实际的计算和东西是相同的
作为一个例子: 想象一下,Mac OS有一个名为ReadFile的功能。 Windows有一个名为GetFile的函数。 Linux有一个名为“OpenFile”的功能。编译程序时,它不会将这些函数包含在代码中。 “操作代码”只是说“在地址#xxxxxx处调用函数”所以如果你在windows中执行它,操作系统将在#xxxxxxx处准备好GetFile函数,这样你的程序就会执行。但是如果你将你的程序复制到Mac,操作系统的设置会有所不同,所以#xxxxx没有等待你的功能,所以程序失败了。
实际上,它在它到达之前就失败了,因为操作系统在运行它们之前查看代码,所以看看它们是否兼容
它不仅仅是像“readFile”这样的功能。几乎所有的程序都涉及为变量获取一些内存,并且每个操作系统都以不同的方式执行(即,它们在不同的地址#xxxx处具有不同的功能以获取内存),因此一旦编译它们,程序就无法在任何其他操作系统上运行