typeof使用

来源:互联网 发布:史上最全数据库汇总 编辑:程序博客网 时间:2024/05/16 17:03


typeof可以获取数据的类型,在内核中用的很多


#define   min(X,  Y)  \

    (__extension__ ({typeof (X) __x = (X), __y = (Y);  \

    (__x < __y) ? __x : __y; }))

#define   max(X,  Y)  \

    (__extension__ ({typeof (X) __x = (X), __y = (Y);  \

    (__x > __y) ? __x : __y; }))

这样做的目的是消除宏对X,Y的改变的影响,例如:result = min(x++, --y); printf(x, y);

补充:圆括号定义的符合语句可以生成返回值,例:

              result = ({ int a = 5;

                            int b;

                            b = a + 3;

                            });          将返回8