在Delphi中,你可以定义符号,就像在C/C++中一样。
这可以让你使用Delphi中的
这是一个布尔值——无论预处理期间符号是否被定义。但是,C/C++还允许您为预处理器符号分配值。例如:
在Delphi中,是否可以给预处理器符号赋值,还是只允许确定符号是否已定义?编辑:由于Delphi不支持预处理器中的符号值,我假设它不支持预处理器宏。这个假设正确吗?例如,在C语言中,您可以定义一个预处理器宏,在编译之前将其复制并粘贴到适当的参数中。这在您想要快速操作(例如二进制逻辑、整数值测试、位移等)的“内联函数”功能时非常有用,而不需要堆栈帧、参数传递等开销。
{$DEFINE MY_SYMBOL}
C/C++:
#define MY_SYMBOL
这可以让你使用Delphi中的
{$IFDEF MY_SYMBOL}
,或者C/C++中的#ifdef MY_SYMBOL
来检查符号是否被定义。这是一个布尔值——无论预处理期间符号是否被定义。但是,C/C++还允许您为预处理器符号分配值。例如:
#ifdef DEBUG
#define DB_HOST "127.0.0.1"
#else
#define DB_HOST "123.456.789.123"
#endif
Database *pDatabase = new Database(DB_HOST);
在Delphi中,是否可以给预处理器符号赋值,还是只允许确定符号是否已定义?编辑:由于Delphi不支持预处理器中的符号值,我假设它不支持预处理器宏。这个假设正确吗?例如,在C语言中,您可以定义一个预处理器宏,在编译之前将其复制并粘贴到适当的参数中。这在您想要快速操作(例如二进制逻辑、整数值测试、位移等)的“内联函数”功能时非常有用,而不需要堆栈帧、参数传递等开销。
#define OK_FLAG 0x00000001
#define OK(f) (f & OK_FLAG)
#define WEAK_XOR_CIPHER(v) (v ^ 0xff)
外部的
(虽然我没有使用过). - TLama