小编Cha*_*had的帖子

61
推荐指数
6
解决办法
4万
查看次数

回车顺序和新换行

是否有正确的回车顺序然后新换行?对于文本编辑器,它们出现的顺序是否重要?

例如,而不是

\r\n
Run Code Online (Sandbox Code Playgroud)

这个

\n\r
Run Code Online (Sandbox Code Playgroud)

好像杰夫已经写了一篇关于这个主题的非常好的博客文章.

text newline

31
推荐指数
4
解决办法
5万
查看次数

如何在C/C++中将assert放入发布版本中

我只需要运行ship build,我需要在发布版本中断言某些条件以查看问题是否已修复.我该怎么做?

c c++ assert release

17
推荐指数
3
解决办法
3万
查看次数

每日构建与零缺陷

您如何进行日常构建并努力实现零缺陷环境?这是否意味着在我杀死新代码中的所有错误之前我永远不会回家?或者它是否意味着我只是不检查我的代码,直到我完全测试它,这使代码有效地分支了更长的时间?

我是第一次与少数程序员合作(而不是单独工作,或者只与其他一个程序员一起工作),所以我只是第一次与这样的决定搏斗.我们应该采用软件开发流程吗?

continuous-integration development-environment

14
推荐指数
2
解决办法
1072
查看次数

冗余与依赖:哪个更糟?

在开发新软件时,我通常会遇到冗余与依赖性问题.也就是说,要么接受我拥有巨大依赖关系的第三方库,要么自己编写代码,复制所有效果但减少依赖关系.

虽然我最近一直试图想出一种衡量代码冗余和代码依赖性的度量方法.在大多数情况下,我总结说减少冗余会增加代码中的依赖性.减少代码中的依赖关系可以增加冗余.所以它非常反对.

所以我的问题是:你曾经使用过一个好的指标,并且用来衡量代码中的依赖关系或冗余吗?

我认为最重要的一件事是,如果您选择依赖路径,则需要使用工具集,以便快速检查使用指定函数的所有例程和函数.没有这些工具设置,似乎冗余获胜.

PS继续文章
文章

language-agnostic

11
推荐指数
1
解决办法
731
查看次数

GCC用__stdcall编译一个dll

当我们在visual studio 2008中使用__stdcall编译一个dll时,dll中编译的函数名称是.

FunctionName

虽然当我们使用GCC使用wx-dev-cpp编译相同的dll时,GCC会附加函数所具有的参数数量,因此使用Dependency walker的函数名称如下所示.

FunctionName @ numberOfParameters或== FunctionName @ 8

你如何告诉GCC编译器从dll中的导出符号中删除@nn?

c++ gcc name-decoration

8
推荐指数
2
解决办法
1万
查看次数

最大内存映射分配大小?

我的系统:物理内存:3GB
Windows XP Service Pack 3(32位)交换文件大小:30gb

目标:找到我可以在我的机器上分配的最大可能内存映射大小.

当我运行以下代码来分配2gb内存映射文件时,调用失败.

手柄=的CreateFileMapping(INVALID_HANDLE_VALUE,NULL,PAGE_READWRITE | SEC_COMMIT,0,INT_MAX,NULL);

我一直很困惑,因为我可以通过不断地一次调用100mb的CreateFileMapping来分配一个内存映射文件,直到系统交换文件大小为30gb.

重新启动计算机后,重新运行请求2gb内存映射文件到CreateFileMapping的应用程序,它可以工作,并返回一个有效的句柄.所以这让我有点困惑,在窗户的引擎盖下到底是怎么回事?

所以情况就是这样,我可以使用所有系统页面文件(30gb)创建许多小内存映射文件,但是当要求单个分配2gb时,调用失败.重新启动机器并运行相同的应用程序时,呼叫成功!

一些注意事项:
1)内存映射文件没有加载到proccess虚拟地址空间,还没有查看该文件.
2)操作系统可以将小的100mb内存映射文件分配给30gb的系统页面文件!

现在我唯一可以得出的结论是,Windows XP SP3(32位)虚拟内存管理器无法在系统页面文件中成功保留所请求的2gb,然后由于系统内存碎片而失败(似乎它需要保留内存的连续分配,即使页面文件是4kb).重新启动后,我假设系统内存碎片较少,因此允许相同的调用成功并分配大小为2gb的内存映射文件.

我运行了一些实验,在运行机器一天后,我启动了一个小应用程序,它将分配一个300mb的内存载文件然后释放它.然后它将增加1mb的大小并再试一次.最后它停在700mb并报告(系统资源不足).然后我会通过并关闭每个应用程序,这将反过来停止错误消息,它最终继续分配大小为3.5gb的内存映射文件!

所以我的问题是这里发生了什么?虚拟内存管理器必须在内部发生某种类型的内存碎片,因为分配100mbs内存映射文件将消耗最多30gb的系统页面文件(提交限制).

更新
结论是,如果你要创建与INVALID_HANDLE_VALUE系统页面文件支持大内存映射文件,那么系统页面文件(交换文件)需要调整到所需要的尺寸,并在非支离破碎的状态大分配> 2gb!虽然在IO负载很重的情况下它仍然会失败.要解决所有这些问题,您可以创建自己的文件,其中包含所需的大小(我做了1tb)和内存映射到该文件.

最终更新
我在Windows 7机器上运行了相同的测试,令我惊讶的是它每次都可以工作(直到系统页面文件大小)而不会触及任何东西.所以我想这只是一个错误,大型内存分配在Windows XP上可能比Windows 7更频繁地失败.

c++ memory

7
推荐指数
1
解决办法
3691
查看次数

修改Git Diff文件

大约6个月前,我们分拆了主要项目.在那个时候,主分支已经添加或删除了100,000多行代码.另一方面,我们添加或更改了大约50,000行代码.它目前合并的时间,所以我们制作了分支A的副本,并将其分支B中的变化合并到其中并将其称为分支C.

现在我们想要在分支C中进行所有合并更改并将其合并回原始分支A.但是我们希望能够安全地防止出现可怕的错误,因此我们希望使用preproccesor启用它或根据我们的禁用它产品发布测试版或发布版.

例如.

#if _BETA_CODE
....他们的新代码.(合并)
#else
...我们的旧代码.
#万一

有没有人知道一个工具可以采用两个项目的差异(分支A和beta分支C)并将它们合并在一起,但使用#ifdef #else #endif命令标记更改?

c c++ git diff

6
推荐指数
1
解决办法
373
查看次数

大范围函数变量的命名约定是什么?

您可以对类成员,静态对象,全局对象和结构具有不同的命名约定.其中一些例子如下.

_member
m_member
Run Code Online (Sandbox Code Playgroud)

或者在Java的情况下,使用this.member.

但是,当单个变量具有完整的功能范围或短寿命范围时,是否存在功能变量范围的任何良好技术或命名约定?

void MyFunction()
{
  int functionScopeVariable;

  if(true)
  {
    //no need for function variable scope naming convention
  }
}
Run Code Online (Sandbox Code Playgroud)

variables naming

4
推荐指数
1
解决办法
1227
查看次数

用什么替换FrontPage?

我使用FrontPage执行两个不同的任务; 创作HTML帮助和创作几个网站.这些网站不需要很多东西 - 它们可以向一些小的观众传播一些信息.

FrontPage可以快速轻松地完成这些任务.WYSIWYG适用于这些工作,我喜欢能够点击链接以快速显示编辑器中的其他页面.

我一直在探索各种各样的选择.在线工作的工具,如Kompozer,使得编辑html帮助变得困难(至少,我还没有找到解决方法)和其他html级工具太多了.试过nVu,Kompozer,Aptama,Komodo,Bluefish到目前为止,除非我遗漏了什么,否则我不会卖掉它们.

我即将看看SeaMonkey,但想知道是否有人有任何建议.或者我应该回去再看看那些其他工具 - 也许我错过了什么?

html ide frontpage

4
推荐指数
2
解决办法
3628
查看次数

找到最大的内存分配

在32位模式下,应用程序可以访问2GB的虚拟地址空间.如果没有malloc或新的失败,您如何找到可以分配给此虚拟地址空间的最大内存大小?

例如,假设您想要占用整个2GB的虚拟地址空间,但您只是在2GB地址空间的中间分配了2MB的数据.是否有Windows API调用,您可以找到可以分配的最大并发地址空间?那么当你调用malloc或new时,调用不会失败?

感谢您的时间.

c c++ windows malloc new-operator

4
推荐指数
1
解决办法
2815
查看次数

即使它不应该运行C++函数?

我是C++的新手,但我对它有很好的处理.我正在尝试列出名单和等级,并找到最大的.除了每次检查最高等级时我的功能都运行,一切都正常.

    //Compares to find highest grade
    void highestTest(studentType info[]){
            int testValue, i;
            testValue = 0;
            i = 0;
            for(i; i < 20; i++){
                if(info[testValue].testScore < info[i].testScore){ 
                    testValue = i;
                }
            }
            //Should run at the very end of the function
            if(i == 20)
                    outPut(testValue, info);
    }

    void outPut(int highTest, studentType info[]){
            cout << "The highest test score goes to " << info[highTest].studentFName << " " << info[highTest].studetnLName << " with a grade of " << info[highTest].testScore << endl;
            cout << …
Run Code Online (Sandbox Code Playgroud)

c++ user-defined-functions

1
推荐指数
1
解决办法
93
查看次数