全站数据
8 4 2 0 5 8 1

c语言的修饰指针有哪些

IT虫子 | 简单学习,快乐成才!         
问题更新日期:2024-10-13 11:07:54

问题描述

c语言的修饰指针有哪些希望能解答下
精选答案
最佳答案

typedef

用于给某个数据类型定义一个新的名字。

如:

typedef int32 ac_int32;

typedef struct _student_st {

int age;

char* pName;

} student_st;

2. extern

引用另一个文件中的函数或全局变量。注意,这些函数和变量是不能被static修饰的。

如:

extern int otherInt;

3. static

被修饰的函数和变量,只能在当前的文件中使用。当static修改局部成员变量时,该变量只会被初始化一次,直到进程结束,才会被销毁。被static修饰的变量将会被保存在全局数据区的静态变量部分。

如:

static int glbInt;

4. _Thread_local (C++中会使用到)

5. auto

表示自动存储的临时变量,也用作自动匹配变量的数据类型。

如:

auto int var = 4;

auto var1 = 0;

6. register

寄存器变量,说明该变量的使用频率非常高,希望编译器尽量将它放到寄存器中。当然,编译器也可以将它忽略。

使用这个修饰符,需要注意:

变量需要是CPU能接受的类型,即单个值,长度小于整型。

只能用到局部变量或函数形参。

不能使用&来引用该变量的地址。

过量的寄存器变量不会对代码产生太大的影响,编译器是可以忽略的。

其他回答

C语言中用于修饰指针的关键字有以下几个:

1. const:用于修饰指针,表示指针指向的变量是只读的,不允许修改。

2. volatile:用于修饰指针,表示指针指向的变量是易变的,可能会被程序以外的因素修改,强制要求每次访问时都从内存中读取。

3. restrict:用于修饰指针,用于告知编译器指针是程序中唯一能访问某个内存区域的指针,优化编译器对指针操作的性能。

4. atomic:用于修饰指针,用于表示该指针指向的内存区域是原子级的,支持原子操作。