typedef const external static automatic初涉

typedef

typedef     char    *ptr_to_char;
ptr_to_char     a;

上述代码把 char *看作一个整体,认为 ptr_to_char 是一个char *的类型

const是先左结合再右结合

int     const   a;
const   int     a;

上述两句话的作用是一样的

但是下面的

int             *pi//一个普通指针
int     const   *cpi;//可以修改指针的值,但不能修改指向的值
int     *const  cpi;//指针无法修改,但是可以修改指向的值
int     const   *const  cpi;//无论是指针和和值都无法修改

我的理解
(int const) *cpi;
((int *)const) cpi;
(int const) (*const) cpi;

链接属性(linkage)
external(外部)
internal(内部)
none(无)

typedef char *a;
static  int b;//表明这个变量为这个源文件私有
/*extern以及static使读者更能体会申明变量的用途*/
int c(int d)
{
    extern int e;//静态
    int f(int g);
    ...
}

默认情况下是external,但是加static可以使其变成internal,static只对默认缺省为external的有效。

存储类型

普通内存,堆栈,硬件寄存器可以存储变量。
1)代码块外部的属于 static,也就是普通内存,代码运行时一直存在
2)代码块内部的是自动的automatic,称为auto变量,离开该代码块便自动销毁,但是在代码块内申明static,并不修改其作用域。
3)register

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值