C++编译指令主要包括以下几类:
-
预处理指令:
#include
:用于引入头文件,使程序可以使用定义在头文件中的函数、变量或类。#define
:用于定义宏,可以简化代码、进行条件编译等。#undef
:用于取消已定义的宏。#if
、#else
、#endif
:用于条件编译,根据条件决定是否编译某段代码。#ifdef
、#ifndef
:用于条件编译,根据是否定义了某个宏来决定是否编译某段代码。#warning
、#error
:用于发出警告或错误信息。#pragma
:用于向编译器发出特定于平台的指令。
-
类型转换指令:
static_cast
:静态类型转换,将表达式的类型转换为T类型。(expression) dynamic_cast
:动态类型转换,在运行时检查表达式的类型,并将其转换为T类型的指针(仅适用于有虚函数的类)。(expression) const_cast
:常量类型转换,用于修改表达式的常量性。(expression) reinterpret_cast
:重解释类型转换,将表达式的类型转换为T类型,通常用于位模式的重新解释。(expression)
-
其他常用指令:
namespace
:用于定义命名空间,避免命名冲突。using
:用于引入命名空间中的特定部分或声明别名。extern
:用于声明外部变量或函数,表示该变量或函数在其他文件中定义。template
:用于定义模板,实现泛型编程。auto
:用于自动推导变量的类型(C++11及更高版本)。decltype
:用于推导表达式的类型(C++11及更高版本)。range-based for loop
:用于简化遍历容器元素的代码(C++11及更高版本)。
-
属性指令(C++11及更高版本):
[[attribute_name]]
:用于为实体(如函数、变量等)添加属性,这些属性对编译器或程序的运行方式可能没有直接影响,但可以提供额外的信息给编译器或用于特定的库。
请注意,这里列出的并非全部编译指令,而是常用和重要的指令。在实际编程中,可能还会遇到其他特定于编译器或库的指令。