随笔分类 -  C/C++

摘要:printf("\033[47;31mhello world\033[5m");47是字背景颜色, 31是字体的颜色, hello world是字符串. 后面的\033[5m是控制码.颜色代码:QUOTE:字背景颜色范围: 40--49 字颜色: 30--39 40: 黑 30: 黑 41: 红 31: 红 42: 绿 32: 绿 43: 黄 33: 黄 44: 蓝 34: 蓝 45: 紫 35: 紫 4... 阅读全文
posted @ 2013-06-21 09:38 IT屁民 阅读(4393) 评论(0) 推荐(0)
摘要:1.在类里声明的类的静态成员只是起到一个说明作用,并不会分配成员的变量空间.必须另外在类外面进行声明.例如,intBoy::m=0;即使不进行初赋值,也要有这样一个定义语句:intBoy:m;因为只有这样,编译程序才分配了变量的空间.否则,便会在链接的时候,出现:undefinedreferenceto`Boy::m'这样的错误.2.尽管成员是在类的定义体之外定义的,但成员定义就好像它们是在类的作用域中一样。回忆一下,出现在类的定义体之外的成员定义必须指明成员出现在哪个类中:doubleSales_item::avg_price()const{if(units_sold)returnr 阅读全文
posted @ 2013-06-03 20:17 IT屁民 阅读(196) 评论(0) 推荐(0)
摘要:在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。(1)先来介绍它的第一条也是最重要的一条:隐藏。当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。下面是a.c的内容char a = 'A'; // global variablevoid msg(){ printf("Hello\n");}下面是main.c的内容int main(void){ extern char a; // extern variable 阅读全文
posted @ 2013-05-20 15:50 IT屁民 阅读(318) 评论(0) 推荐(0)
摘要:Q:在多文件的项目中,一个文件用到了另一个文件中定义的函数,此时既可以用extern来引用该函数,又可以#include另一个文件使得编译通过。请问这两种方式本质有什么不同?A:1L本质上没太大区别,在include的文件(头文件)里也是用extern来声明的.但用include文件有很多优点:当用到多个外部变量或函数的时候,extern:在每个用到的文件中需要用多个extern声明;include:只需要在include各声明一次,其它使用这些变量的只需要包含该头文件即可.2Lextern函数,include对应头文件...include对应的c文件是不可取的方式..3L有点的。如果没有说错 阅读全文
posted @ 2013-05-20 15:46 IT屁民 阅读(4082) 评论(0) 推荐(0)
摘要:1.引言 C++语言的创建初衷是“a better C”,但是这并不意味着C++中类似C语言的全局变量和函数所采用的编译和连接方式与C语言完全相同。作为一种欲与C兼容的语言,C++保留了一部分过程式语言的特点(被世人称为“不彻底地面向对象”),因而它可以定义不属于任何类的全局变量和函数。但是,C++毕竟是一种面向对象的程序设计语言,为了支持函数的重载,C++对全局函数的处理方式与C有明显的不同。 2.从标准头文件说起 某企业曾经给出如下的一道面试题: 面试题 为什么标准头文件都有类似以下的结构? #ifndef __INCvxWorksh #define __INCvxWorks... 阅读全文
posted @ 2013-05-20 15:41 IT屁民 阅读(325) 评论(0) 推荐(0)
摘要:C++的源代码文件分为两类:头文件(Header file)和源文件(Source code file)。头文件用于存放对类型定义、函数声明、全局变量声明等实体的声明,作为对外接口;而源程序文件存放类型的实现、函数体、全局变量定义。对于商业C++程序库,一般把头文件随二进制的库文件发布,而源代码保留。一般情况下头文件常以.h或.hpp作为扩展名,而实现文件常以.cpp或.cc为扩展名。头文件一般不直接编译,一个源文件代表一个“编译单元”。在在编译一个源文件时,如果引用的类型、函数或其它实体不在本编译单元内,可以通过引用头文件将其它编译单元内实现的实体引入到本编译单元。而从本质上讲,这些源代码文 阅读全文
posted @ 2013-05-20 15:31 IT屁民 阅读(5486) 评论(0) 推荐(0)
摘要:1、引子 在平常的C/C++开发中,几乎所有的人都已经习惯了把类和函数分离放置,一个.h的头文件里放声明,对应的.c或者.cpp中放实现。从开始接触,到熟练使用,几乎已经形成了下意识的流程。尽管这样的做法无可厚非,而且在不少情况下是相对合理甚至必须的,但我还是要给大家介绍一下把实现全部放置到头文件中的方式,给出可供大家使用的另一个选择。同时针对这一做法,也顺便说一下其优缺点以及需要注意的情况。 我是一个很喜欢简洁的人,多年以来甚至养成了这样的癖好,如果一个功能是能够用一条语句实现的,那就不要用两条语句。在我看来,如果给别人提供一份可以复用的代码的话,最优雅的状态莫过于仅仅提供一个头文件... 阅读全文
posted @ 2013-05-20 11:30 IT屁民 阅读(478) 评论(0) 推荐(0)
摘要:1、struct ,union两种结构的特点,所占内存特点(比如内存对齐)。2、enum的用法3、typedef 联合 struct的用法………… 阅读全文
posted @ 2011-08-17 21:14 IT屁民 阅读(254) 评论(0) 推荐(0)
摘要:lib是和dll对应的。lib是静态链接库的库文件,dll是动态链接库的库文件。 所谓静态就是link的时候把里面需要的东西抽取出来安排到你的exe文件中,以后运行你的exe的时候不再需要lib。所谓动态就是exe运行的时候依赖于dll里面提供的功能,没有这个dll,你的exe无法运行。 lib,dll,exe都算是最终的目标文件,是最终产物。而c/c++属于源代码。源代码和最终目标文件中过渡的就是中间代码obj,实际上之所以需要中间代码,是你不可能一次得到目标文件。比如说一个exe需要很多的cpp文件生成。而编译器一次只能编译一个cpp文件。这样编译器编译好一个cpp以后会将其编译成obj, 阅读全文
posted @ 2011-07-05 18:12 IT屁民 阅读(1602) 评论(0) 推荐(0)