C++保留字

先上ANSI C规定的C++保留字

auto
break
case
char
char
const
continue
default
double
else
enum
extern
float
for
goto
if
int
long
register
return
short
signed
sizeof
static
struct
switch
typedef
union
unsigned
void
volatile
while

在VS2008中调试通过。提交到USACO竟然是编译错误!

仔细检查,最后将嫌疑锁定在叫xor的变量上。改掉变量名,一切正常~

我们都知道,C++中异或运算的运算符是^,ANSI国际标准也没有规定xor这个保留字。但是,各种编译器(如USACO用的GCC)因平台原因,通常会添加一些自己的保留字。xor应该就是其一。

为了避免这种问题,我找到另一张列表,这里是扩充过的C++保留字,尽管一些在国际标准中没有,但作为一种编程习惯,我们应避免将它们作为自己的标识符。

and                                  and_eq                          asm                                auto
bitand                              bitor                              bool                                break
case                                catch                              char                                class
compl                              const                             const_cast                      continue
default                            delete                              do                                 double
dynamic_cast                  else                                 enum                             explicit
export                            extern                             false                               float
for                                 friend                               goto                              if
inline                              int                                   long                               mutable
namespace                      new                                not                                 not_eq
operator                         or                                  or_eq                               private
protected                        public                             register                           signed
reinterpret_cast               return                            short                              struct
sizeof                             static                              static_cast                      throw
switch                            template                         this                                 typeid
true                               try                                 typedef                            using
typename                       union                              unsigned                         wchar_t
virtual                             void                              volatile                              while
xor                               xor_eq


C++保留字并非函数,保留字包含关键字、替代标记和C++库保留名称等,它们有各自特定的用途和使用方式,并非以调用函数的形式使用。 ### 关键字 不同关键字有不同的使用场景和规则: - **`asm`**:允许在C++程序中嵌入汇编代码,使用时直接将汇编指令字符串放在`asm`后,如`asm("movl %eax, %ebx");` [^2]。 - **`auto`**:用于自动推导变量类型,在声明变量时使用,如`auto num = 10;`,编译器会自动根据初始化值`10`推导`num`为`int`类型 [^2]。 - **`bool`**:声明布尔类型变量,其值只能是`true`或`false`,可用于条件判断和函数返回值,例如`bool isTrue = true; if (isTrue) { // do something }` [^2]。 - **`break`**:用于`switch`语句或循环语句中,当程序执行到`break`时,会跳出当前`switch`或循环语句块,继续执行后续代码,示例如下: ```cpp for (int i = 0; i < 10; i++) { if (i == 5) { break; } // 当i等于5时,跳出循环 } ``` - **`case`**:用于`switch`语句中,对不同情况进行判断处理,示例如下: ```cpp int num = 2; switch (num) { case 1: // 当num等于1时执行的代码 break; case 2: // 当num等于2时执行的代码 break; default: // 当num不等于以上任何一种情况时执行的代码 break; } ``` - **`catch`**:和`try`语句一起用于异常处理,`try`块中可能抛出异常,`catch`块用于捕获并处理这些异常,示例如下: ```cpp try { // 可能抛出异常的代码 throw 1; } catch (int e) { // 捕获并处理异常 // 这里捕获到的异常是整数类型 } ``` - **`class`**:用于声明一个类,是C++面向对象设计的基础,示例如下: ```cpp class MyClass { public: int num; void printNum() { // 成员函数 } }; ``` ### C++库保留名称 C++标准库中的函数使用时需要包含相应的头文件,例如使用`std::cout`输出内容时,需要包含`<iostream>`头文件: ```cpp #include <iostream> int main() { std::cout << "Hello, World!" << std::endl; return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值