opendir MYDIR, "$dir";
my @FILES = readdir MYDIR;
closedir MYDIR;
Run Code Online (Sandbox Code Playgroud)
似乎99.9%的时间数组中前两个条目总是"."和"..".如果不是这样,脚本中的后来逻辑就会出现问题.我遇到了以后出现目录条目的情况.这是否表明文件系统已损坏或其他?opendir返回的是否有已知的顺序?
我知道我可以踢预处理器以-E在我的特定情况下使用该选项吐出输出.对于生成的代码,这个预处理器输出是杀气腾腾的.例如,我有一个4gl的应用程序,而Informix将它转换为C,这反过来又吐出了一个可怕的丑陋混乱.
我想要的是一个编辑器,它允许我指定有效的预处理器值,并只显示相关代码.我有一些在Vim的匹配非常基本的工作#ifdef和#endif,但代码是充满了更先进的结构是这样的#ifndef,#if和#else.更糟糕的是,构造在逻辑上更复杂,我认为我的Vim脚本技能不足以让我得到我想要的东西.例如:
#if DLEVEL > 5
#define SIGNAL 1
#if STACKUSE == 1
#define STACK 200
#else
#define STACK 100
#endif
#else
#define SIGNAL 0
#if STACKUSE == 1
#define STACK 100
#else
#define STACK 50
#endif
#endif
#if DLEVEL == 0
#define STACK 0
#elif DLEVEL == 1
#define STACK 100
#elif DLEVEL > 5
display( debugptr );
#else
#define STACK 200
#endif
Run Code Online (Sandbox Code Playgroud)
如果我想解决它,包括定义表达式求值程序.这必须是一个解决的问题!如果您有Vim建议或其他建议,请告诉我.
鉴于邮政编码中隐含的状态信息是不是存储了一些违反第三范式的内容?您可以或者应该简单地将它们组合成一个字段吗?
让我们假装你有一个3 Gb jar文件,你的应用程序只使用一个小类.JVM是将整个jar文件加载到内存中还是读取目录并仅加载它需要的部分?这种行为是否可控?
这不是学术准则或假设性问题.最初的问题是将代码从HP11转换为HP1123 Itanium.基本上它归结为HP1123 Itanium上的编译错误.在Windows上进行复制时,我真的很抓头.除了最基本的方面之外我已经删除了......如果按原样运行,可能必须按控制D退出控制台窗口:
#include "stdafx.h"
#include <iostream>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
char blah[6];
const int IAMCONST = 3;
int *pTOCONST;
pTOCONST = (int *) &IAMCONST;
(*pTOCONST) = 7;
printf("IAMCONST %d \n",IAMCONST);
printf("WHATISPOINTEDAT %d \n",(*pTOCONST));
printf("Address of IAMCONST %x pTOCONST %x\n",&IAMCONST, (pTOCONST));
cin >> blah;
return 0;
}
Run Code Online (Sandbox Code Playgroud)
这是输出
IAMCONST 3
WHATISPOINTEDAT 7
Address of IAMCONST 35f9f0 pTOCONST 35f9f0
Run Code Online (Sandbox Code Playgroud)
我只能说是什么?这样做是不明确的?对于这样一个简单的例子,这是我见过的最违反直觉的事情.
更新:
确实在搜索了一段时间后,菜单调试>> Windows >>反汇编完全具有下面描述的优化.
printf("IAMCONST %d \n",IAMCONST);
0024360E mov esi,esp
00243610 push 3
00243612 push offset …Run Code Online (Sandbox Code Playgroud) 每个现代源控制系统都可以对程序的历史进行切片和切块.有许多工具可以静态和动态地分析代码.什么样的数学公式可以让我将文件中的活动量与该软件的部署数量相结合?我们发现,即使一个程序完成了所有的单元测试,它也需要比升级时更多的工作.这种类型的措施应该是可能的,但坐下来考虑甚至其单位让我难过.
更新:如果有东西被发送到测试机器,我可以看到标记它不那么烂.如果有东西被发送到所有测试盒,我可以看到它得到一个新的标记.如果有什么东西可以投入生产,我可以给它一个点头并减少它的bitrot得分.如果它的文件中有很多活动,并且它永远不会被发送到任何地方,我会把它丢弃.假设我需要的任何数据都在手边,请不要专注于代码.
什么样的提交分析(提交注释(如下所述)或提交之间的时间)是适用的公平数据?
更新: 我认为尺寸分析可能只是基于年龄.相对于那更难一点.旧代码很烂.每行代码的平均年龄仍然只是时间的度量.更大的源模块是否比更小,更复杂的源模块更快?
更新代码覆盖率以行为单位.根据定义,执行的代码通常必须比从未执行的代码更少腐烂.要准确测量bitrot,您需要进行覆盖率分析以充当阻尼器.
我遇到了以下内容,我想知道它对我的cygwin/gnu环境有什么影响我应该使用除-o以外的东西来命名编译的输出吗?是否采用了一些新标准并且其他编译器是否遵守它?
删除-o的动机是什么?
DOS PROMPT>输入compile.bat
cl.exe -D YY_MAIN = 1 lex.yy.c libfl.obj -o foobar
DOS PROMPT>编译
cl.exe -D YY_MAIN=1 lex.yy.c libfl.obj -o foobar
Run Code Online (Sandbox Code Playgroud)
cl:命令行警告D9035:已弃用选项"o",将来的版本中将删除该选项
更新:正如下面的答案要求他们是否试图在Windows和UNIX之间故意制造更多的裂痕?我希望不是.我希望我错过了所有编译器采用的新约定.
对于在运行IIS的两台Windows 2003 Server上运行的应用程序,我的结果不一致.有没有办法快速将IIS配置转储到文件进行比较?有比较两个IIS服务器的好工具吗?
我使用TTS(文本到语音)和VR(语音识别)在可访问的应用程序领域进行了广泛的工作.我有机会长时间使用单手键盘.传统的UNIX开发(我喜欢的小黑盒子)正在失去更多现代技术和开发环境的市场份额.复杂的GUI本身令人沮丧,增加额外的困难使它们无法容忍.鉴于当前可用的选择,Microsoft似乎在环境中启用功能以适应残疾程序员方面具有优势.这个问题可能只是归结为哪个环境和工具链最能支持自动化,以及GUI可以通过命令行有效完成的所有操作的概念?
我遇到了一些代码,并想知道最初的开发人员是做什么的.以下是使用此模式的简化程序:
#include <stdio.h>
int main() {
char title[80] = "mytitle";
char title2[80] = "mayataiatale";
char mystring[80];
/* hugh ? */
sscanf(title,"%[^a]",mystring);
printf("%s\n",mystring); /* Output is "mytitle" */
/* hugh ? */
sscanf(title2,"%[^a]",mystring); /* Output is "m" */
printf("%s\n",mystring);
return 0;
}
Run Code Online (Sandbox Code Playgroud)
c ×3
c++ ×1
class ×1
command-line ×1
comparison ×1
database ×1
environment ×1
iis ×1
java ×1
loader ×1
metrics ×1
opendir ×1
perl ×1
scanf ×1
vim ×1