C语言不恰当的指针声明

考虑如下声明:

int* ptr1, ptr2;

声明本身没错,不过,可能跟我们的本意不同,它把ptr1声明为整数指针,而把ptr2声明为整数。我们将星号有意紧挨着数据类型,而ptr1前面则加了空格。这样的位置对编译器来说没有区别,但是对于读代码的人来说,可能暗示着ptr1ptr2都是整数指针。然而,只有ptr1是指针。

在同一行中把两个变量都声明为指针的正确写法如下所示:

int *ptr1, *ptr2;

注意 每个变量声明独占一行更好。

用类型定义代替宏定义是另一个好习惯。类型定义允许编译器检查作用域规则,而宏定义不一定会。

我们可以使用宏指令辅助声明变量,如下所示。在这里,define指令包装了整数指针,并用它来声明变量:

#define PINT int*
PINT ptr1, ptr2;

不过,结果就跟前面所说的一样。更好的方法是用下面的类型定义:

typedef int* PINT;
PINT ptr1, ptr2;

两个变量均被声明为整数指针。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程