我刚刚开始工作的另一个代码库,开发人员在复制/比较/设置时始终使用结构的第一个元素的地址,而不是结构本身.这是一个简单的例子.
首先是结构类型:
typedef struct {
int a;
int b;
} foo_t;
Run Code Online (Sandbox Code Playgroud)
然后有一个函数可以复制这样的结构:
void bar(foo_t *inp)
{
foo_t l;
...
memcpy(&l.a, &inp->a, sizeof(foo_t));
...
}
Run Code Online (Sandbox Code Playgroud)
我不会以memcpy这种方式写一个调用,我开始怀疑原始开发人员根本没有完全掌握C中的指针和结构.但是,现在我已经在两个不相关的代码库中看到了这个,没有普通开发人员所以我开始怀疑自己.
为什么要使用这种风格?
在阅读哈斯克尔有关的东西,我有时会遇到表达"绑结",我想我明白了什么是这样,而不是如何.
那么,对这个概念有什么好的,基本的,简单易懂的解释吗?
我发现Oleg关于Iteratee的文档有点难以理解.特别是因为他在Haskell-Cafe的帖子中的一些功能不在iteratee库中(比如enum_file).
有没有对iteratee有一个很好的介绍,通过打开文件/套接字,读取和处理数据等基础知识.
我似乎无法在网上的众多Vim脚本教程中找到答案.我想要做的是从环境变量构造脚本的文件名,然后来源它.我想在Vim中做到这一点.
如果我要在shell中执行它,我会做这样的事情:
source ${HOME}/.vim/myscript_${FOO}.vim
Run Code Online (Sandbox Code Playgroud)
我怎么在Vim中做到这一点?
如何查找进程中的所有打开文件(来自内部)?
在fork()(之前exec())之后知道这似乎很有用.
我知道它的存在性getdtablesize()和可移植性sysconf(_SC_OPEN_MAX),但是尝试关闭每个有效的文件描述符似乎效率低下,无论是否有一个打开的文件.(我也意识到过早优化的危险,这更多是关于美学我猜:-)
Zsh完成是一个相当复杂的野兽,我发现man-page非常难以阅读,特别是它缺少(简单)所有各种optspec表单等的例子.我还没有设法在网上找到任何东西,所以帮助将是非常感谢.
作为一个例子,这是我目前正在努力解决的问题,并且该zshcompsys手册页没有提供任何澄清.我有
#compdef mtt2
_arguments -s : \
'-h' '--help' \
'-V' '--version' \
':foobars:(foo bar baz)'
Run Code Online (Sandbox Code Playgroud)
现在,当我输入mtt2 <TAB>我只提供foo,bar并baz作为完井,为什么不-h,--help等等,以及?_arguments为了获得所有可能性,我需要传递什么魔力?
目前我正在使用自动工具来构建/安装和打包我的项目,但我真的想转向感觉更"pythonic"的东西.
我的项目包括两个脚本,一个模块,两个glade GUI描述和两个.desktop文件.它目前是一个纯粹的python项目,虽然很快就会改变.
看看setuptools,我可以很容易地看到如何处理除.desktop文件之外的所有内容; 他们必须最终进入特定目录,以便Gnome可以找到它们.
使用distuils/setuptools是一个好主意吗?
我在一家SVN商店工作,但为了在工作中注入一点理智,我使用git-svn.越来越多的同事也看到了光明,现在我们想要在某些情况下完全支持SVN.目前我们每个人都拥有自己的git-svn仓库,但由于差异很大,我们无法真正分享除普通补丁或SVN之外的任何东西.我们应该如何组织我们的回购以允许直接共享(通过git-remote)?
我能想出的唯一方法是使用单个共享git-svn repo,我们将其用作SVN的网关,但这可能有点麻烦 - 如果我们都这样做会好得多可以直接从我们自己的git-svn repos推送到SVN.
编辑:不幸的是我没有SVN服务器的管理员访问权限,因此目前很少使用像subgit这样的解决方案,即使它们很有用.
我在Linux上使用MinGW交叉编译到Windows.让工作变得轻而易举.用所需的DLL打包它并不是那么简单.目前的解决方案是在Windows上运行可执行文件并复制DLL,直到它实际运行.
是否有一个Linux工具列出了我的Windows .exe所需的DLL?(类似于lddDependencyWalker 的组合.)
我正在使用Subgit访问Subversion仓库.它工作得很好,但有时,特别是在与使用普通Subversion客户端访问存储库的用户进行通信时,我真的很想找到特定变更集对应的SVN版本.
我可以使用git在我的本地仓库中找到SVN修订号吗?