????4.##?????
????##???????????????????????????????????##?????????????????????????????????
????#define NUM(a??b??c) a##b##c
????#define STR(a??b??c) a##b##c
????main()
????{
????printf("%d "??NUM(1??2??3));
????printf("%s "??STR("aa"??"bb"??"cc"));
????}
??????????????:
????123
????aabbcc
?????????????????????????÷???ú?????????????????????г?????????##?????????????????????????ù?????
???????????????????
?????????????????????Щ????????????Щ???????????????????????????????????????????????????????????
????1.#if???
????#if??????????????????????????????????????棬???????????????????#else??#elif??#endif????????????
????2.#endif???
????#endif???????#if???????
????#define DEBUG 0
????main()
????{
????#if DEBUG
????printf("Debugging ");
????#endif
????printf("Running ");
????}
?????????????DEBUG?????0??????#if????????????????????????#endif???????????????Running??
??????????#define???Ч??????????
????3.#ifdef??#ifndef
????#define DEBUG
????main()
????{
????#ifdef DEBUG
????printf("yes ");
????#endif
????#ifndef DEBUG
????printf("no ");
????#endif
????}
????#if defined?????#ifdef; #if !defined?????#ifndef
????4.#else???
????#else??????????#if????????????#if????????????????????#else????????#endif????????????????顣
????#define DEBUG
????main()
????{
????#ifdef DEBUG
????printf("Debugging ");
????#else
????printf("Not debugging ");
????#endif
????printf("Running ");
????}
????5.#elif???
????#elif?????????????#else??#if???????á?
????#define TWO
????main()
????{
????#ifdef ONE
????printf("1 ");
????#elif defined TWO
????printf("2 ");
????#else
????printf("3 ");
????#endif
????}
???????????????????????2??
????6.?????Щ??????
????#error??????????????????????????????????
????#line????????????????????????????????????????к??
????#pragma?????????????塣????????????????????????????÷????????????Щ?????????????