Skip to content

{ Monthly Archives } 一月 2008

转:元旦社论标题目录

1949年以来的《人民日报》元旦社论目录: 1949 《将革命进行到底》  1950 《完成胜利,巩固胜利迎接一九五○年元旦》  1951 《在伟大爱国主义旗帜下巩面我们的伟大祖国》  1952 《以高度的信心和坚强的意志迎接一九五二年》  1953 《迎接一九五三年的伟大任务》  1954 《一切为了实现国家的总路线》   1955 《迎接一九五五年的任务》  1956 《为全面地提早完成和超额完成五年计划而奋斗》  1957 《新年的展望》  1958 《乘风破浪》 1959 《迎接新的更伟大的胜利》 1960 《展望六十年代》 1961 《团结一致,依靠群众,争取世界和平和国内社会主义建设的新胜利》  1962 《新年献词》 1963 《巩固伟大成绩,争取新的胜利》 1964 《乘胜前进》 1965 《争取社会主义事业新胜利的保证》  1966 《迎接第三个五年计划的第一年——一九六六年》  1967 《把无产阶级文化大革命进行到底》 1968 《迎接无产阶级文化大革命的全面胜利》  1969 《用毛泽东思想统帅一切》 1970 《迎接伟大的七十年代》 1971 《沿着毛主席革命路线胜利前进》 1972 《团结起来,争取更大的胜利》 1973 《新年献词》 1974 《元旦献词》 1975 《新年献词》 1976 《世上无难事,只要肯登攀》  1977 《乘胜前进》 1978 《光明的中国》 1979 《把主要精力集中到生产建设上来》  1980 《迎接大有作为的年代》 1981 《在安定团结的基础上,实现国民经济调整的巨大任务》  1982 《一年更比一年好,定教今年胜去年》 1983 《为我们的伟大事业增添新的光彩》 1984 《勇于开创新局面》 1985 《和衷共济搞四化》 1986 《让愚公精神满神州》 1987 《坚持四项基本原则是搞好改革、开放的根本保证》  1988 《迎接改革的第十年》 1989 《同心同德,艰苦奋斗》 1990 《满怀信心迎接九十年代》  1991 《为进一步稳定发展而奋斗》  1992 《在改革开放中稳步发展》 1993 《团结奋进》 1994 《艰苦奋斗,再创辉煌》  1995 《总揽全局,乘势前进》  1996 《满怀信心夺取新胜利》 1997 《把握大局,再接再励,同心同德,开拓前进》  1998 《在十五大精神指引下胜利前进》  1999 《团结奋斗,创造新业绩》  2000 《迎接新世纪的曙光》 2001 《迈进光辉灿烂的新世纪》 2002 《迈出中华民族伟大复兴的新步伐》 [...]

base64

        按照RFC2045的定义, Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。 (The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be humanly readable.) Base64是网络上最常见的用于传输8Bit字节代码的编码方式之一,在发送电子邮件时,服务器认证的用户名和密码需要用Base64编码,附件也需要用Base64编码。RFC2045 ~ RFC2049 上有MIME的详细规范。 Base64要求把每三个8Bit的字节转换为四个6Bit的字节(3*8 = 4*6 = 24),然后把6Bit再添两位高位0,组成四个8Bit的字节,也就是说,转换后的字符串理论上将要比原来的长1/3。(为什么要这样做呢?因为以00开头的每一个8Bit字节,都是“可打印字符”;而非00开头的8Bit字节,可能会是非“可打印字符”,或者多字节字符的一部分) 我们来看一个例子: 转换前 aaaaaabb ccccdddd eeffffff 转换后 00aaaaaa 00bbcccc 00ddddee 00ffffff 上面的三个字节是原文,下面的四个字节是转换后的Base64编码,其前两位均为0。 转换后,我们用一个码表来得到我们想要的字符串(也就是最终的Base64编码),这个表是这样的:(摘自RFC2045) Table 1: The Base64 Alphabet Value Encoding Value Encoding Value Encoding [...]

C++中extern “C”含义深层探索

转自:C++博客 1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。 2.从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题 为什么标准头文件都有类似以下的结构? #ifndef __INCvxWorksh #define __INCvxWorksh #ifdef __cplusplus extern “C” { #endif /*…*/ #ifdef __cplusplus } #endif #endif /* __INCvxWorksh */ 分析 显然,头文件中的编译宏“#ifndef __INCvxWorksh、#define __INCvxWorksh、#endif” 的作用是防止该头文件被重复引用。 那么 #ifdef __cplusplus extern “C” { #endif #ifdef __cplusplus } #endif 的作用又是什么呢?我们将在下文一一道来。 3.深层揭密extern “C” extern “C” 包含双重含义,从字面上即可得到:首先,被它修饰的目标是“extern”的;其次,被它修饰的目标是“C”的。让我们来详细解读这两重含义。 被extern “C”限定的函数或变量是extern类型的; extern是C/C++语言中表明函数和全局变量作用范围(可见性)的关键字,该关键字告诉编译器,其声明的函数和变量可以在本模块或其它模块中使用。记住,下列语句: extern int [...]