【发布时间】:2017-11-03 18:30:14
【问题描述】:
C 代码中的“定义”前面没有# 是什么意思?比如这两行有什么区别:
define retadd "\x9f\x45\x3a\x77"
#define port 110
我在此处找到的代码中发现了这一点: https://www.exploit-db.com/raw/643/
【问题讨论】:
-
我认为这是代码中的错误。
-
这显然是一个错字。如果您查看使用情况,如果您像其他所有内容一样
#defined 它会起作用 -
或者,更确切地说,它是一种安全功能,因此非 c 精通的人无法轻易使用该漏洞。
-
是否已经像 #define define #define 那样“定义”了?只是一个想法......但我同意这可能是一个错字
-
@Grantly:不,你不能那样做。
#运算符将其参数字符串化,并且它只能在类似函数的宏中使用。