学习日志 姓名: 张福辉 日期:2018.7.23
|
|
今日学习任务
| 1.函数指针 2.函数指针数组 3.关键字 4.结构体、共用体、枚举 |
今日任务完成情况
(详细说明本日任务是否按计划完成,开发的代码量) | 按要求完成任务 |
今日开发中出现的问题汇总
| 1.如何修改编译器的对齐方式 2.typedef和和宏定义谁更好 3.宏函数和自定义函数的区别 |
今日未解决问题
| 无 |
今日开发收获 | 1.对函数指针和函数指针数组有了深入了解,知道了回调函数的定义 2.对几个关键字有了深入了解,知道了它们的区别 3.知道了结构体在定义时由于对其方式产生的内存空洞是怎么回事 4.知道了结构体、共用体、枚举的区别,还有宏和typedef的区别 |
自我评价
(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)
| 按规定完成任务 |
其他
| 无 |
#include <stdio.h>
int add(int a, int b)
{
return a + b;
}
int sub(int a, int b)
{
return a - b;
}
int mul(int a, int b)
{
return a * b;
}
int div(int a, int b)
{
return a / b;
}
int cal(int a, int b, int (*p_cal)(int, int))
{
return p_cal(a, b);
}
int main()
{
int sum1 = cal(5, 6, add);
int sum2 = cal(5, 6, sub);
int sum3 = cal(5, 6, mul);
int sum4 = cal(5, 6, div);
printf("sum1 = %d\n", sum1);
printf("sum2 = %d\n", sum2);
printf("sum3 = %d\n", sum3);
printf("sum4 = %d\n", sum4);
int (*p_cal_array[4])(int, int);
p_cal_array[0] = add;
p_cal_array[1] = sub;
p_cal_array[2] = mul;
p_cal_array[3] = div;
int i;
for(i = 0; i < 4; i++)
{
printf("sum = %d\n", (p_cal_array[i])(5, 6));
}
return 0;
}
/************************************/
#include <stdio.h>
int count = 6;
void func()
{
static int num1 = 5;
num1++;
printf("num1 = %d\n", num1);
}
int main()
{
int num = 5;
printf("num = %d\n", num);
func();
func();
func();
print();
return 0;
}
/**********************************/
extern int count;
void print()
{
printf("count = %d\n", count);
}
/***********************************/
#include <stdio.h>
#include <string.h>
struct message
{
int num;
char ch;
char str[100];
};
typedef struct message Message;
int main()
{
Message msg;
Message *p = &msg;
printf("sizeof(msg) = %d\n", sizeof(msg));
#if 0
msg.num = 1;
printf("num = %d\n", msg.num);
p->num = 2;
printf("num = %d\n", p->num);
msg.ch = 'a';
printf("ch = %c\n", msg.ch);
p->ch = 'b';
printf("ch = %c\n", p->ch);
strcpy(msg.str, "hello world");
printf("str = %s\n", msg.str);
strcpy(p->str, "HELLO WORLD");
printf("str = %s\n", p->str);
#endif
return 0;
}
/********************************/
#include <stdio.h>
union node
{
int num;
char ch[2];
char ch1;
};
int main()
{
union node u;
u.num = 0x12345678;
printf("num = %x\n", u.num);
printf("ch = %x\n", u.ch1);
return 0;
}