1.结构体与结构体变量
(1)结构体:
struct student{
char name[10];
int age;
int student_number;
};
(2)结构体变量
struct student{
char name[10];
int age;
int student_number;
}s1,s2;
2.正则表达式
%[^e] 意思是一直到e终止,并且这个e会被去掉:
举例:sscanf("123456 abcdedf", "%[^e]", buf); printf("%s\n", buf); 输出123456 abcd
举例: sscanf("123456 abcdedf","123456 a%[^f]", buf); printf("%s\n", buf); 输出bcded
3.宏中带 #和##用法
(1)#define STRING(x) #x
char *str = STRING( test_string );
printf(“%s\n”,str); //输出:test_string
也就是自动转换成字符
(2)#define paster( n ) printf( "token" #n" = %d\n ", token##n )
int token1=11;
paster(1); //输出11
4.回调函数
(1)回调函数,带指针参数
void Callback_1(char *x)
{
printf("input =%s\n",x);
}
int Handle(void (*Callback)(char *), char *x)
{
Callback(x);
return 0;
}
Handle(Callback_1, "hgfhfghgfhf");
(2)函数指针赋值给一个参数,然后根据这个参数执行函数
void (*Fun)(char);
void test(char x)
{
printf("%d\n",x);
}
Fun = test;
Fun(10);
5.打印文件名、函数名和行数
printf("[%s:%s %u ]\n", __FILE__, __FUNCTION__, __LINE__); //