关于代码 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类型。

关于代码 ij = I::oO(0xB81l);,布布扣,bubuko.com

时间: 2024-10-09 23:33:03

关于代码 ij = I::oO(0xB81l);的相关文章

Python 代码精简和优化

Python很简单,容易使用,开发效率很高,移植性很好,代码资源也很丰富,被广泛使用.但是Python代码编出来的动态库比较大,python库很全,缺点就是库比较大. 在内存占用方法,随着py库的引入,内存也成倍的增加,这里来讨论下如何来给Python瘦身,以及如何优化内存的占用. 一.如何给Python的动态库瘦身. Python的代码还是很精练的,所以要减小小代码的大小比较困难,但是仍然有一些思路来减小Python库的大小. 1.strip python动态库. 动态库一般都是包含符号表,这

我的几种源代码标识

我的几种源代码标识1. OO 表示对整个项目OO的架构理解,或许有可能被重新组织2. Important 表示当前语句是整个项目功能的关键调用3. good 一些语言或框架里非常有用的小技巧4. fixme 标识我不理解的地方,或者有待修正的bug5. byme 被我改写了官方的函数或者用法 其中important还要细分

PYTHON修饰器的函数式编程

转自:http://coolshell.cn/articles/11265.html Python修饰器的函数式编程 Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西.虽然好像,他们要干的事都很相似--都是想要对一个已有的模块做一些"修饰工作",所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能

用python解方程和微积分

用python解方程: from sympy import * x = Symbol('x')  y = Symbol('y') print solve([2* x - y -3,3* x + y -7],[x, y]) 2. 求极限: 代码中的oo就代表无穷. from sympy import * n = Symbol('n') s = ((n+3)/(n+2))**n print limit(s, n, oo) 3. 求定积分: integrate函数用于积分问题. from sympy 

oop_day02_类、重载_20150810

1.怎样创建类?怎样创建对象? 2.引用类型之间画等号: 家门钥匙 1)指向同一个对象(数据有一份) 2)对当中一个引用的改动.会影响另外一个引用 基本类型之间画等号: 身份征复印件 1)赋值(数据有两份) 2)对当中一个值的改动,不会影响另外一个值 内存图: 基本类型和引用类型在内存中存储 基本类型画等号 引用类型画等号 3.null: 1)空,即:不再指向不论什么对象 2)若引用的值为null.则不能再进行不论什么操作了 若操作则NullPointerException(空指针异常) 内存图

ECMAScript5中的对象存取器属性:getter和setter

显然这是一个无关IE(高级IE除外)的话题,尽管如此,有兴趣的同学还是一起来认识一下ECMAScript5标准中getter和setter的实现.在一个对象中,操作其中的属性或方法,通常运用最多的就是读(引用)和写了,譬如说o.get,这就是一个读的操作,而o.set = 1则是一个写的操作.事实上在除ie外最新主流浏览器的实现中,任何一个对象的键值都可以被getter和setter方法所取代,这被称之为“存取器属性”. 毫无疑问,getter负责查询值,它不带任何参数,setter则负责设置键

【死磕iOS】8 次尝试,带你走进 iOS 精益编程

转自:http://www.cocoachina.com/ios/20151026/13884.html 开场 今天, 我们将从一个小功能开始, 先去不假思索的实现它 Product Repository: Filtering Operation Code start 有一个产品库, 我们要对它做过滤操作. 第一个需求并不复杂. 需求1:在仓库中查找所有颜色为红色的产品 First Attempt: Hard Code 我们先用最简单的方式去实现它, 硬编码 1 2 3 4 5 6 7 8 9

深入浅出 Python 装饰器:16 步轻松搞定 Python 装饰器

Python的装饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西.虽然好像,他们要干的事都很相似--都是想要对一个已有的模块做一些"修饰工作",所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能)侵入到原有的模块中的代码里去.但是OO的Decorator简直就是一场恶梦,不信你就去看看wikipedia上的词条

Python修饰器

Python的修饰器的英文名叫Decorator,当你看到这个英文名的时候,你可能会把其跟Design Pattern里的Decorator搞混了,其实这是完全不同的两个东西.虽然好像,他们要干的事都很相似——都是想要对一个已有的模块做一些“修饰工作”,所谓修饰工作就是想给现有的模块加上一些小装饰(一些小功能,这些小功能可能好多模块都会用到),但又不让这个小装饰(小功能)侵入到原有的模块中的代码里去.但是OO的Decorator简直就是一场恶梦,不信你就去看看wikipedia上的词条(Deco