1. # 与##的区别

    1.1. #宏定义时转变参数为字符串

 
e.g.1: 
#define STR(str)      #str 
char *mystr = STR(test);
printf("%s",mystr);
result: "test" 
 
e.g.2: 
#define STR(str)      #str 
char *myits =STR(1024);
printf("%s",myits);
result: "1024" 
 
e.g.3: 
#define STR(str)       #str
#define SIZE           1024
char *myint =STR(SIZE);
printf("%s",myint);
result: "SIZE" //此处输出式SIZE 因为SIZE是一个宏,不会再展开
 
e.g.4: 
#define _STR(str)      #str
#define STR(str)       _STR(str)
#define SIZE           1024
char *myint =STR(SIZE);
printf("%s",myint);
result: "1024" //增加了中间层,可以正确转换
View Code

相关文章:

  • 2022-12-23
  • 2022-12-23
  • 2021-11-22
  • 2022-01-27
  • 2022-12-23
  • 2022-12-23
  • 2021-09-29
  • 2022-12-23
猜你喜欢
  • 2021-12-14
  • 2021-09-25
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案