#define 和typedef的区别
程序员文章站
2024-03-23 11:40:40
...
源于知乎的一个帖子:
https://www.zhihu.com/question/29798061
看到一个有趣的例子,贴过来
typedef int P();
typedef int Q();
class X{
static P(Q); //define Q to be a P.
//equivalent to ''static int Q()''
//the parentheses arount Q are redundant
//Q is no longer a type in this scope
static Q(P); //define Q to be a function
//taking an argument of type p
//and returning an int.
//equivalent to ''static int Q(int())''
};
这是c++创始人写的《c++语言的设计和演化》书上的例子
static P(Q);
相当于 P Q,(类似int a)。P表示一个返回值为int的无参函数,所以这行代码的意思就是:static int Q()
static Q(P);
这个时候Q不再是一个类型,而是被定义为一个函数,表示
static int Q(int())
上一篇: 面试常见算法
下一篇: epoll_data 结构体问题
推荐阅读
-
#define 和typedef的区别
-
typedef 和 #define
-
C语言 typedef 和define
-
define和typedef的区别
-
typedef和define的区别
-
Oracle和DB2转换的部分区别 博客分类: Oracle OracleDB2
-
C语言常量-#define与const的区别
-
ORACLE for update和for update nowait的区别 博客分类: Oracle 数据库oraclefor updatefor update nowait
-
while 与 do...while 的区别和使用方法
-
Java中的函数yield(),sleep()和wait()的区别 博客分类: view Javathread