首页 > 代码库 > 关于代码 ij = I::oO(0xB81l);

关于代码 ij = I::oO(0xB81l);

在VS2012,打开“工具菜单”中的“选项”。在左侧菜单中“字体和颜色”部分,可以发现代码

ij = I::oO(0xB81l);

这句代码是VisualStudio里的一个示例,包含了字符对i和j、:和;、oO和0、B和8、1l和I。有些字体这几组字符(特别是0和O)很难区分。

(我选了等宽字体Consolas作为我VS里文本编辑器的字体,这个字体里0里面比O多一个斜线)

为了探究这段代码的含义,我们做个实验:

1)在VS2012中建立一个C++控制台应用程序

2)输入下面代码

// Just4Fun.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"

namespace I
{
    int oO(int num)
    {
        return num;
    }
}

int _tmain(int argc, _TCHAR* argv[])
{
    int ij;

    ij = I :: oO(0xB81l);

    printf("%d\n", ij);  //输出ij的值
    char c = ‘ ‘;        //读取一个字符赋到c中
    scanf_s("%c", c);
    return 0;
}

3)程序运行结果

可以看到运行结果为2945

代码含义:ij是一个被赋值的变量。I是一个命名空间,oO为该命名空间下的一个函数,0xB81l为该函数的参数。0xB81即十六进制数B81,转化为十进制后值为11*16*16+8*16+1=2945,后面的l表示此数为long类型。