C 知识积累

C99中 结构体初始化的用法

  1. static struct id_mesg{  
  2.     charchar *name;  
  3.     unsigned int age;  
  4.     charchar *job;  
  5. };   

  1. static struct id_mesg persons[] = {  
  2.     {"bimax"23"hero"},  
  3.     {"deadpool"34"marvel"},  
  4.     {"thor"65535"god"},  
  5.     {.name = "linus".job  = "linuxman"}  
  6. };  

该段的前三个为结构体赋值常用方法,最后一个是来自C99标准,表示指定初始化,使用前缀.加变量名称进行定向赋值
如上所示,分别对name赋值为字符串“linus”job赋值为字符串“linuxman”,可以空下age不进行赋值这使得结构体的赋值更加便捷,而且可以单独对某一个变量进行赋值而不需要管其他的变量。
倘若我们使用前三项的方法只对agejob进行赋值是比较困难的,但是使用最后一个初始化形式对这两者赋值则是非常简单,这个特性常常用在结构体变量非常多而且不需要全部进行初始化的地方,在linux的内核当中可以看到有大量的这种方法赋值的语句。


typedef的使用

int* (a)(int, char*); 

typedef int* (PF)(int, char*);//PF是一个类型别名【注】
PF a;//跟int* (a)(int, char*);的效果一样! 
注:很多初学者只知道typedef char* pchar;但是对于typedef的其它用法不太了解。Stephen Blaha对typedef用法做过一个总结:“建立一个类型别名的方法很简单,在传统的变量声明表达式里用类型名替代变量名,然后把关键字typedef加在该语句的开头”。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值