现在位置: 首页 > 所有2012年07月发表的文章
2012-07-13 22:42 工业·编程 ⁄ 共 3683字 暂无评论
开发环境 –Turbo c DOS时代c语言开发的经典工具,目前适合两类人使用:c语言beginner(尤其是学生一族),具有怀旧情节的专业人士:) –Visual C++ 6.0/7.0 稳定而强大的IDE开发环境,具有丰富的调试功能,定制宏的功能也是其一大特色。Microsoft的经典之作,功能强大自不必言说。附带的一些工具也很不错,比如:Spy++。但编译器较之同类,支持c++标准的程度不够好,尤其6.0及以前的版本。 –BCB Borland的C++ Builder是可...
阅读全文
在C语言函数使用中函数参数的传递是单值转递,即把实参传递给形参,就是把实参复制一份传给形参。如何证明这一点呢?我想到了一个方法,就是在调用函数和被调用函数都输出实参和形参的地址。如果地址一致那么就是双向传递,如果地址不一致,就是单向传递。 例程如下: #include <iostream.h> void Fun(int a,int b) { cout<<&a<<endl; cout<<&b<<endl; } int main(void) { int a; int b;...
阅读全文
2012-07-13 22:31 工业·编程 ⁄ 共 413字 暂无评论
也许只有实践才知道自己的C语言基础有多薄弱。今天在VC知识库论坛上问了一个弱弱的问题。 我在一个类里声明: enum { sbf=1024*63 }; char m_cBuffer[sbf]; 然后在构造函数里初始化: m_cBuffer[sbf] = {'/0'}; 编译时出现了这些错误: syntax error : '{' missing ';' before '{' missing ';' before '}' 之后我将这个初始化语句改为memset(m_cBuffer,'/0',sbf);就没有了错误。 为什么不能像...
阅读全文
2012-07-13 22:27 工业·编程 ⁄ 共 4389字 暂无评论
指针是C语言中的精髓。《高质量C++编程指南》的作者林锐就曾说过:不会正确使用指针,肯定算不上是合格的程序员。昨晚我思考了一宿,自认找到了理解指针的正确途径。本文试图通过探究指针和数组的关系去研究指针。 一般的C语言教科书上都会有这样的话:指针就是地址,数组名就是指针的首地址。这些不能不说是错误的,但是却没有深入进去,学生很难有较深的理解。 我认为从本质上看,数组是一个单独的内存块,指针是单独一个内存...
阅读全文
比如A类有一个成员是B类对象,B类有一个成员是A类指针,该怎样包含头文件呢?如果写互相包含头文件,会出现下面的错误: error C2143: 语法错误: 缺少“;”(在“*”的前面) 我总结的一个办法是: 正确的做法 在A.h中 #inclue “B.h” 在B.h中B类的定义前面添加这样一句: Class A;     类的前置声明和包含头文件的区别在于类的前置声明是告诉编译器有这种类型,但是它没有告诉编译器这种类型的大小、成员函数和数据成...
阅读全文
    前天看一个系统的代码,突然对面向对象和面向过程有了一些新的理解。简而言之,面向对象采用空间换时间的策略,面向过程采用时间换空间的策略,正因为采用不同的策略,就有了不同的应用场合。比如让你设计一个图像读取库,其中要设计一个获取图像大小的接口。 1)如果采用面向过程的方式设计,可能采用这样的设计: //************************************************************* //  功能 ...
阅读全文
在公司一个同事问我:"什么时候应该用assert?比如某个函数的输入参数为一个指针,要进行有效计算,该指针必须非空,我弹出一个警告对话框来提示对方不就行了吗?干吗要用assert?我想问的是什么时候用对话框提示用户,什么时候用assert?" 这是一个值得思考的问题。首先明确assert(这里我说的是C++环境下)是需要在调试状态下才能生效的,在发布版是失效的。调试生效的事实告诉我们的是assert的一个重要作用是帮助开...
阅读全文
2012-07-13 22:05 工业·编程 ⁄ 共 1206字 暂无评论
std::string毫无疑问是一个很强大的字符串类,但比起MFC的CString类,也存在一些不足,比如字符串的大小写转换以及格式化字符串。这次我介绍一下std::string大小写转换的两个函数以及格式化std::string的两种做法。 /*! *  /brief 将字符串中的大写字母变为小写。 * *  /param SrcString [in&out]源字符串。 *  /return 无。 */ static void string_ToLower(string &SrcString) { ...
阅读全文
    今天公司研发部举行会议,讨论执行代码审查事宜。在讨论到一条:头文件不能放函数实现代码,我提出异议:内联函数应该例外。同事反驳说:内联函数的实现也可放进cpp文件。我摆出我的理由:如果是类的内部使用该类的内联函数,函数实现放哪都行(头文件和cpp文件都可以);但是如果外部调用类的内联函数同时该函数的实现又是放在cpp中,那会出现错误。同事于是问我会出现错误,当时我也没答上来。于是大家就...
阅读全文
    总结了一下设计函数的一些心得:首先判断是否需要操作是否成功、值是否存在,若不需要,考虑直接返回操作结果(即由renturn语句返回而不是通过输出参数返回),毕竟这样外部调用比较方便,若需要,则应设计为通过输出参数返回操作结果值。
阅读全文