高通原来是这样定义结构体的:
#define STRUCT(type) typedef struct _tag_##type type;\
struct _tag_##type
STRUCT(Student)
{
char* name;
int id;
};
今天算是见识了,完整例子如下:
#include <stdio.h>
#define STRUCT(type) typedef struct _tag_##type type;\
struct _tag_##type
STRUCT(Student)
{
char* name;
int id;
};
int main()
{
Student s1;
Student s2;
s1.name = "s1";
s1.id = 0;
printf("%s\n", s1.name);
printf("%d\n", s1.id);
return 0;
}
总结完全得利于“##”(粘连符)的使用,学习了,可以加到自己的代码中去。另外:“#”可以是在宏中讲变为字符串。