宏可以多行表示吗?解决办法

宏可以多行表示吗?有些地方的语句是重复的,想用宏来替换,有若干行比如x + yy + z.....如果写在一行里,

宏可以多行表示吗?
有些地方的语句是重复的,想用宏来替换,有若干行

比如
x += y;
y += z;
.....



如果写在一行里,感觉看着很乱,能用多行吗?

#define TEST x+=y; y+=z; ......
[解决办法]
"" 宏换行符


#define TEST \
           x+=y; \
           y+=z; 

[解决办法]
#include <stdio.h>

#define WIRTE_UINT(des ,x ,pos ,len)  (                                   \
    (des)                                                                 \
    &                                                                     \
       ~(                                /* 除要修改的位为0,其余都为1 */ \
            (                                                             \
                (1<<(len))-1             /* 长度为len位的1             */ \
            )                                                             \
            <<(32-(pos)-(len))           /* 左移32-(pos)-(len)位       */ \
        )                                                                 \
    
[解决办法]
                                                                     \
        (                                                                 \
            (x)                                                           \
            <<(32-(pos)-(len))                                            \


        )                                                                 \
)
#define READ_UINT(src ,pos ,len)      (                                   \
    (                                                                     \
        (                                                                 \
            (unsigned)(src)                                               \
        )                                                                 \
        >>(32-(pos)-(len))               /* 逻辑右移32-(pos)-(len)位   */ \
    )                                                                     \
    &                                                                     \
    (                                                                     \
        (1<<(len))-1                     /* 长度为len位的1             */ \
    )                                                                     \
)

int main()                              //                1111111111222222222233
{                                       //bit   01234567890123456789012345678901
    unsigned int des = 0x661;           //      00000000000000000000011001100001
    unsigned int r;

    des = WIRTE_UINT(des ,3 ,28 ,2);    //      00000000000000000000011001101101
    printf("des==0x%08X\n",des);
    r = READ_UINT(des ,28 ,2);
    printf("r==%d\n",r);
    return 0;
}
//des==0x0000066D


//r==3


[解决办法]
引用:
"" 宏换行符

#define TEST \
           x+=y; \
           y+=z; 

这个叫做折行符 
别叫做宏换行符 
那样好像只有宏能用似的
"2311\
213"
in\
t i;
puts(\
"fd\
f");