gpt4 book ai didi

objective-c - 突出显示为关键字 : pascal 的宏

转载 作者:搜寻专家 更新时间:2023-10-30 19:53:33 25 4
gpt4 key购买 nike

在查看 FunkyOverlayWindow 的示例代码时,我刚发现一个很有趣的声明:

pascal OSStatus MyHotKeyHandler(
EventHandlerCallRef nextHandler,
EventRef theEvent,
void *userData
);

此处,pascal 被突出显示为关键字(在标准 Xcode 配色方案中为粉红色)。但我刚刚发现它是一个宏,有趣的是在文件 CarbonCore/ConditionalMacros.h 中定义为:

#define pascal

那么,它应该(或曾经)做什么?也许它在过去有什么特殊用途?

虽然这个讨论可能不太适合这里,但如果这与答案相关,那么知道为什么 Apple 仍在使用 Carbon 会很有趣。我没有使用 Carbon 的经验,但这段代码似乎设置了一个键盘事件处理程序,这让我想知道与 Cocoa 方法相比是否有任何优势。碳不会被完全去除吗?

最佳答案

在 68k 经典 Mac OS 运行时(例如,在 PowerPC x86 之前),C 和 Pascal 使用不同的调用约定,因此 C 应用程序在使用 Pascal 调用库时必须声明适当的约定约定(包括大多数操作系统)。该宏是在同时代的编译器(例如 MPW、Metrowerks、Think C)中实现的。

在所有较新的运行时和所有现代编译器中,不再识别关键字,因此 ConditionalMacros.h header 将其定义掉。该文件中有一些评论可能有助于解释更多内容 - 如果您喜欢游戏,请仔细阅读。

关于objective-c - 突出显示为关键字 : pascal 的宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com