首页 行业资讯 宠物日常 宠物养护 宠物健康 宠物故事

如何理解c++中的关键字static,const,以及#define在定义

发布网友 发布时间:2024-09-28 18:05

我来回答

1个回答

热心网友 时间:2024-09-28 18:40

#define与static、const不同,属于预处理器的宏。预处理器在编译前执行,进行字符串替换,不遵循语言语法。宏定义的内容直接插入。

例如:

预处理器替换后,编译器将认为你定义了一个名为*、类型为*的变量。

const代表constant,意为常数或常量。用于修饰变量,表示其不可修改;用于指针,表示指针指向的对象不可变;用于方法,表示该方法不会改变对象。

static含义复杂,有三种含义:

应用于全局变量时,表示每个编译单元实例化变量。若分别编译foo.cpp与bar.cpp后链接,全局变量a将有两份,分别由函数各自操作。

应用于函数内局部变量,表示其生存周期为全局,但在函数内可见。每次函数调用,将获得不同的int值。初始赋值操作仅在首次调用时执行。

应用于类成员时,表示成员或方法属于类而非对象实例。每个Foo实例共享一个int a,通过Foo::bbb()调用bbb方法。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com