VC —— 实践笔记

目录:

  1. 在VC中做传统window编程(使用传统接口)时将代码多文件模块化


1、在VC中做传统window编程(使用传统接口)时将代码多文件模块化

    消息机制下,数千行代码量的编程,在VC++ 6.0 这样古董的IDE下开发,如果把代码集中在一个文件,代码会越编越臃肿,越编效率越低,大部分时间可能会浪费在找定义,找相关的代码上,为了解决这个问题,解决办法应该很直接,就是——模块化,多文件化。

    这阵子,为了练习window传统的API,给自己编写了一个软件[github Link],简单的功能,当越编越臃肿,于是刚刚就花了点时间把代码重构了一下,在这里给自己总结下吧。

    1)static 全局变量的使用:作用域在文件之内,如果include 包含static全局变量的头文件,VC++6.0 会给每一个include其的文件各分配一个静态内存,无法公用

    2)static 全局变量的另一种使用:如果怕重名不想定义全局而用static,但还是要与其他文件共享,可以定义公用的函数,用函数返回其值或其引用(如果不担心数据的话)

    3)全局变量的使用:虽然知道要对全局变量怀有敬畏之心,但是代码实在太长,要分开来共享又不想使用上面static在2)中的用法,这时在别处要用就是用关键字extern

时间: 2024-10-10 08:49:17

VC —— 实践笔记的相关文章

hadoop2.5.2学习及实践笔记(四)—— namenode启动过程源码概览

对namenode启动时的相关操作及相关类有一个大体了解,后续深入研究时,再对本文进行补充 >实现类 HDFS启动脚本为$HADOOP_HOME/sbin/start-dfs.sh,查看start-dfs.sh可以看出,namenode是通过bin/hdfs命令来启动 $ vi start-dfs.sh # namenodes NAMENODES=$($HADOOP_PREFIX/bin/hdfs getconf -namenodes) echo "Starting namenodes o

孙鑫VC++视频教程笔记

写在前面的话:在学习孙鑫老师的VC++视频时,为了加深自己对知识的深入理解,就做了下面的笔记. 第一讲: 第二讲: 第三讲: 第四讲: 第五讲: 第六讲: 第七讲: 第八讲: 第九讲: 第十讲: 第十一讲: 第十二讲: 第十三讲: 第十四讲: 第十五讲: 第十六讲: 第十七讲: 第十八讲: 第十九讲:动态链接库 第二十讲: 孙鑫VC++视频教程笔记,布布扣,bubuko.com

PHP核心技术与最佳实践--笔记

<?php error_reporting(E_ALL); /* php 5.3引入 延迟静态绑定 */ /* php5.4引入trait,用来实现多层继承 trait Hello{} trait World{} class MyHelloWorld{ use Hello,World; } */ /* php4时代 php是不支持析构函数的*/ /* php中数组索引是字符串,但是没有使用引号,php就将其认为是一个常量,找不到在视为变量 */ /** * php中的异常必须手动 * 可以结合错

udacity android 实践笔记: lesson 4 part a

udacity android 实践笔记: lesson 4 part a 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 联系:1307316一九六八(短信最佳) 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处. tips:https://code.csdn.net/titer1/pat_aha/blob/mast

udacity android 实践笔记: lesson 4 part b

udacity android 实践笔记: lesson 4 part b 作者:干货店打杂的 /titer1 /Archimedes 出处:https://code.csdn.net/titer1 联系:1307316一九六八(短信最佳) 声明:本文采用以下协议进行授权: 自由转载-非商用-非衍生-保持署名|Creative Commons BY-NC-ND 3.0 ,转载请注明作者及出处. tips:https://code.csdn.net/titer1/pat_aha/blob/mast

COMET探索系列一【COMET实践笔记】

转:http://www.cnblogs.com/hackboy/p/3687627.html COMET探索系列一[COMET实践笔记] 这几天在给公司的一个点对点聊天系统升级,之前只是使用简单的ajax轮询方式实现,每5秒钟取一次数据,延时太长,用户体验不是很好,因此打算采用服务器推送技术,故此整理了以下文档,将自己找到的一些资料及心得与大家在此分享.本文主要综述了Comet相关的概念.应用场景.常用的两种实现模型.及PHP实现代码. 概    念:Comet,基于 HTTP 长连接的“服务

前端学习实践笔记--JavaScript深入【1】

这一年中零零散散看过几本javascript的书,回过头看之前写过的javascript学习笔记,未免有点汗颜,突出“肤浅”二字,然越深入越觉得javascript的博大精深,有种只缘身在此山中的感觉,茫茫然而不得其要领,索性在一边写博文中,求得突破,乃至更上一层楼. 看过的书籍推荐: <javascript语言精粹> Douglas Crockford <javascript设计模式> Addy Osmani <javascript设计模式> Ross Harmes

Python编程入门到实践 - 笔记(1,2章)

自学 Python 有段时间了,总是觉得自己基础不牢,想着把看完的两本基础书写个博客做个笔记啥的. 准备在重新看一遍<Python编程入门到实践>,坚持写博客笔记. Python编程入门到实践的前两章笔记,学习的内容如下: 查看当前环境中的 python 版本 python环境的搭建 变量和变量的命名 字符串的打印 修改字符串的大小写 制表符和换行符 删除空白字符 python的整数运算,计算平方,立方 使用 str() 函数 查看当前环境中的 python 版本 命令行下输入 python 

CasperJS实践笔记(3)

CasperJS项目中方法的封装和调用问题,第二个遇到的workflow问题. 在其他代码中有几个方法,比如fun_A,fun_B,fun_C: 现在某个方法调用它们,有一个错误的示范: casper.then(function(){ this.echo("xxxx"); this.wait(function(){ this.echo("AAAA"); }) this.waitForSelector('', function(){ fun_a.call(this);