有如下函数,functionB()是对一个文本文件进行读写操作,functionA()中会频繁的调用functionB(),因为I/O是不可信任的,我原本将open()和close()都写在functionB()中,这样会存在隐患。现要对这段代码进行优化。//.h
calss Proj
{
functionA();
functionB();
}
//.cpp
functionB()
{
CStdioFile file;
file.Open();
...;
file.Close();
}functionA()
{
...;
while(...)
{
functionB();
}
}
1、如果将open()和close()写在functionA()中,这样定义CStdioFile的静态变量在哪里比较合适?头文件?还是CPP文件中函数外,还是functionA()函数内(这个MS不行)?
2、如果定义CStdioFile变量为静态变量,如何初始化?在哪里初始化?
3、请问各位高人,有没有别的方法来解决这个问题?
calss Proj
{
functionA();
functionB();
}
//.cpp
functionB()
{
CStdioFile file;
file.Open();
...;
file.Close();
}functionA()
{
...;
while(...)
{
functionB();
}
}
1、如果将open()和close()写在functionA()中,这样定义CStdioFile的静态变量在哪里比较合适?头文件?还是CPP文件中函数外,还是functionA()函数内(这个MS不行)?
2、如果定义CStdioFile变量为静态变量,如何初始化?在哪里初始化?
3、请问各位高人,有没有别的方法来解决这个问题?
解决方案 »
- CTreeCtrl加入checkbox后,怎样把根节点的checkbox去掉,或者disabled,而保留其余子节点的checkbox?
- ocx开发时,vs2003对应于vc6中中的添加属性。
- 设备坐标和逻辑坐标 明天就考试 急!!!!
- 怎样通过API或CMenu让菜单项的文本右对齐
- 求类似Windows任务管理器CPU(内存)占有率那样的显示的类(或控件)
- 高分求8位单片机(最好MC68HC908GP32)的PLL编程示例和原理
- @@(在线等待)@ OnDraw()与OnPaint()有什么区别?
- VC中怎样调用OPENGL,让图像显示在对话框中
- 文件在硬盘上的位置
- 怎样得到window临时文件夹的路径?
- 关于服务程序启动的问题
- 文件的读写操作求助
static CStdioFile g_file;
functionB()
{
//CStdioFile& file = g_file;
//file.Open();
...;
//file.Close();
}functionA()
{
...;
g_file.Open();
while(...)
{
functionB();
}
g_file.Close();
}//ps: 这个代码很简单,其实没必要写,主要是没有在csdn上回帖时写过代码,想看看用起来如何,呵呵
extern "C" int WINAPI
_tWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPTSTR lpCmdLine, int nCmdShow)
{
// call shared/exported WinMain
return AfxWinMain(hInstance, hPrevInstance, lpCmdLine, nCmdShow);
}
第一个花括号处,这是什么错误呢?
#include <stdio.h>
void funtiona();
void funtionb();
void main()
{
funtiona();}
void funtiona()
{
static FILE *file=fopen("c:\\wesen.txt","r+");
while(1)
{
funtionb();
}
fclose(file);}
void funtionb()
{}
没什么问题啊
我运行调试过的一切正常
如果你不能改变B的参数定义,就只能用全局变量的方式了。你可以定义一个全局的指针变量,然后在A里面new和delete。
TransToDatbase()
{
CFile file;
file.Open();
file.Read();
.....//一些格式转换
file.Close();
.....//写入数据库
}
只要有新的稿件过来,这个函数就会被调用。软件运行这么久以来,没出任何问题。LZ,这会有什么隐患呢?