当前位置:首页 > 芯闻号 > 充电吧
[导读]1.typedeftypeof char *ptr_to_char; ptr_to_char a, b; //等价于 char *a , *b; //若如下则不然 #define d_ptr_t

1.typedef

typeof char *ptr_to_char;
ptr_to_char a, b;

//等价于
char *a , *b;


//若如下则不然
#define d_ptr_to_char char*
d_ptr_to_char a ,b;

//等价于
char *a;
char b;

2.常量

//关于指针和常量
int const *ptr;

这是一个指向整型常量的指针。可以修改指针的值,但不能修改指针所指向的值。

int * const ptr;

申明ptr是一个指向整型的常量指针。指针的值为常量,无法修改。但其指向的整型值可修改。

int const * const ptr;

无论是指针还是指针指向的值均为常量,不能修改。

3.作用域

文件作用域、函数作用域、代码块作用域和原型作用域。其中一对花括号之间的所有语句成为一个代码块。

4.链接属性

external、internal和none

typedef char *a;
int b;
int c(int d)
{
    int e;
    int f(int g );

}

默认状态下,标识符b,c,f的链接属性为external。

代码块外变量默认为external,函数声名默认具有external属性。

关键字exter和static可以在声明中修改标识符的链接属性。static只对默认链接属性为exter的声明才具有改变链接属性的效果。

5.存储类型

普通内存、运行时栈、硬件寄存器。

凡在任何代码块之外声明的变量总存储于静态内存中,也就是不属于堆栈的内存,静态变量(static)。若不设置初始值,默认0.

在代码块内部声明的变量的默认存储类型为automatic,若不设置初始值,值未知。

注意:

    static:

        当其用于函数定义或者用于代码块之外的变量声明时,值用于改变标识符的链接属性,不改变其存储类型和作用域。

        当其用于代码块内部的变量声明时,用于修改变量的存储类型。


全局所有代码块之外否从声明处至文件尾不允许从其他源文件访问局部代码块起始处是整个代码块

变量不存储于堆栈中,它的值在程序整

个执行期一直保持

形式参数函数头部是整个函数不允许

6.编程提示

    6.1 为了保持最佳的可移植性,把字符的值限制在有符号和无符号字符范围的交集之内,或者不要在字符上执行算数运算。

    6.2 用它们在使用时最自然的形式来表示整型常量。

    6.3  不要把整型值和枚举值混用。

    6.4 不要依赖隐式声明。

    6.5 在定义类型的新名字时,采用typedef而不是#define

    6.6 用const声明其值不会修改的变量。

    6.7 使用名字常量而不是整型常量。

    6.8 不要在嵌套的代码块使用相同的变量名。

    6.9 除了实体的具体定义位置之外,在它的其他声明位置都使用extern关键字。

作用域、链接属和存储类型总结
变量类型 声明位置是否存在于堆栈作用域如果申明为static
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

万用表是一种可以测量多种项目的便携式仪表,在电子技术中主要用来测量电压、电流与电阻。在电子元器件选用中,它可用来粗略检测元器件的好坏或性能优劣

关键字: 指针 万用表

万用表又称为复用表、多用表、三用表、繁用表等,是电力电子等部门不可缺少的测量仪表,一般以测量电压、电流和电阻为主要目的。万用表按显示方式分为指针万用表和数字万用表

关键字: 指针 万用表 数字万用表

字符串是C语言中最基础的概念,也是最常被用到的。在嵌入式开发中,我们经常要将一些字符串通过串口显示到串口助手或调试终端上,作为信息提示,以便让我们了解程序的运行情况;或者是将一些常量的值转为字符串,来显示到液晶等显示设备...

关键字: 字符串 指针 C 语言

指针使得 C 语言能够更高效地实现对计算机底层硬件的操作,而计算机硬件的操作很大程度上依赖地址,指针便提供了一种对地址操作的方法,在一定意义上,指针是c语言的精髓,所以一定要耐心看完。指针对于很多c语言初学者来说可能难以...

关键字: 指针 C 语言 计算机

有深入理解RTOS原理,或阅读过RTOS源码的同学应该知道:RTOS实现任务间通信通常是由一系列指针进行操作实现的。

关键字: RTOS 指针 数组

实际上函数指针本质也是一个指针,只不过这个指针指向的不是内存中的一段数据而是内存中的一段代码

关键字: 指针 数据 代码

C 为什么不加入垃圾回收机制!

关键字: 垃圾回收 指针

记得刚开始工作时,一位高手告诉我,说,longjmp和setjmp玩得不熟,就不要自称为C语言高手。

关键字: 指针 C语言 longjmp

C ++ 的连载教程就到此结束了,所涉及的内容也只是 C++ 中很浅显的一部分。

关键字: C 指针

数组名和指针是两个往往很容易让人们混淆的概念,很多人以为数组名就是一个指针,也有很多人知道数组名不同于指针但是仅知道数组名的值不能像指针一样改变。

关键字: 编译器 指针 数组
关闭
关闭