苏嵌//日志//周文东//7月23日

苏嵌 项目实战

学习日志                 姓名:周文东 日期:7月23日

 

 

 

 

今日学习任务

 

1.数指针,函数名,函数地址,函数指针变量。

2.Register,static,extern,const,typedefine等关键字的作用。

3.熟练掌握宏的使用技巧,区别宏函数和函数。

4.结构体,共用体,枚举。

5.循环语句,break,continue的区别。

日任务完成情况

 

(详细说明本日任务是否按计划完成,开发的代码量)

今天任务完成,代码见下面。

日开发中出现的问题汇总

 

  1. 如何避免幻数。
  2. const修饰的变量只能是只读变量,不能通过修改变量名来修改变量。
  3. 结构体和共用体的概念。

 

日未解决问题

 

日开发收获

 

 

自我评

 

(是否按开发规范完成既定任务,需要改进的地方,与他人合作效果等)

 

 

今天在按规范完成任务,自己还是编程能力最为关键,虽有一定提高,但还不够,与他人合作效果很好。

其他

 

1.回调函数

 

1 #include <stdio.h>

 

  2

 

  3 int add(int a, int b)

 

  4 {

 

  5     return a + b;

 

  6 }

 

  7

 

  8 int sub(int a, int b)

 

  9 {

 

 10     return a - b;

 

 11 }

 

 12

 

 13 int mul(int a, int b)

 

 14 {

 

 15     return a * b;

 

 16 }

 

 17

 

 18 int div(int a, int b)

 

 19 {

 

 20     return a / b;

 

 21 }

 

 22

 

 23 int cal(int a, int b, int (*p_cal)(int ,int))   //回调函数

 

 24 {

 

 25     return p_cal(a,b);

 

 26 }

 

 27

 

 28 int main()

 

 29 {

 

 30     int i;

 

 31     int sum;

 

 32     cal(6,6,add);

 

 33     cal(6,6,sub);

 

 34     cal(6,6,mul);

 

 35     cal(6,6,div);

 

 36

 

 37

 

 38     int (*p_cal_array[4])(int, int);

 

 39

 

 40     p_cal_array[0] = add;

 

 41     p_cal_array[1] = sub;

 

 42     p_cal_array[2] = mul;

 

 43     p_cal_array[3] = div;

 

 44

 

 45

 

 46     for(i = 0; i < 4; i++)

 

 47     {

 

 48         sum = (p_cal_array[i])(6,6);

 

 49         printf("sum = %d\n",sum);

 

 50     }

 

 51

 

 52     //sum = (*p_cal_array[1])(6,6);

 

 53     //printf("sum = %d",sum);

 

 54     //printf("\n");

 

 55     return 0;

 

 56 }

 

 57

 

 

 

 

 

2.结构体

 

1 #include <stdio.h>

 

  2

 

  3 struct massage

 

  4 {

 

  5     int num;

 

  6     char ch;

 

  7     char *ptr;

 

  8     char str[100];

 

  9 };

 

 10

 

 11 typedef struct massage Massage;

 

 12

 

 13 int main()

 

 14 {

 

 15     int num = 6;

 

 16     char ch = 'a';

 

 17

 

 18     printf("num = %d, ch = %c\n",num,ch);

 

 19

 

 20     Massage meg;

 

 21     Massage *p = &meg;

 

 22

 

 23     meg.num = 1;

 

 24     meg.ch = 'a';

 

 25     p->num = 6;

 

 26     p->ch = 'c';

 

 27

 

 28     strcpy(p->str,"hello world");

 

 29

 

 30     printf("p->num = %d, p->ch = %c \n",p->num,p->ch);

 

 31

 

 32

 

 33

 

 34     return 0;

 

 35 }

 

 

 

 

 

 

 

                                                                                                        

 

3.测量结构体的字节长度

 

  1 #include <stdio.h>

 

  2

 

  3 struct node

 

  4 {

 

  5     char i;

 

  6     int num;

 

  7     double j;

 

  8

 

  9 };

 

 10

 

 11 typedef struct node Node;

 

 12

 

 13 int main()

 

 14 {

 

 15     Node p;

 

 16     printf("sizeof(p) = %d\n",sizeof(p));

 

 17     return 0;

 

 18 }

 

 

 

 

 

 

 

4.共同体的用法

 

1 #include <stdio.h>

 

  2

 

  3 union node

 

  4 {

 

  5     int num;

 

  6     char ch[2];

 

  7 };

 

  8

 

  9 int main()

 

 10 {

 

 11     union node p;

 

 12     union node *pp = &p;

 

 13

 

 14     p.num = 1;

 

 15     pp->num = 1;

 

 16

 

 17     p.ch[0] = 'b';

 

 18     p.ch[1] = 'a';

 

 19     pp->ch[0] = 'b';

 

 20     pp->ch[1] = 'a';

 

 21     printf("pp->num=%d,pp->ch[0]=%c,pp->ch[1]=%c\n",

 

pp->num,pp->ch[0],pp->ch[1]);

 

 22

 

 23     return 0;

 

 24 }

 

 

 

 

 

 

 

5.用共同体判断是大端字节序还是小端字节序

 

1 #include <stdio.h>

 

  2 union node

 

  3 {

 

  4     int num;

 

  5     char ch;

 

  6 };

 

  7

 

  8 int main()

 

  9 {

 

 10     union node p;

 

 11     p.num = 0x12345678;

 

 12     if(p.ch == 0x78)

 

 13     {

 

 14         printf("little\n");

 

 15     }

 

 16     if(p.ch == 0x12)

 

 17     {

 

 18         printf("big\n");

 

 19     }

 

 20     return 0;

 

 21 }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值