小编cha*_*its的帖子

好的C字符串库

我最近受到启发,启动了一个我想要编写一段时间的项目.我想在C中做,因为内存处理是这个应用程序的关键.我正在四处搜索C中字符串的良好实现,因为我知道我自己这样做会导致一些混乱的缓冲区溢出,我希望处理相当多的字符串.

我发现这篇文章详细介绍了每一个,但他们每个人都觉得他们有很多利弊(不要误会我的意思,这篇文章非常有帮助,但它仍然让我担心,即使我是选择其中之一,我不会使用我能得到的最好的).我也不知道这篇文章是如何更新的,因此我目前的请求.

我正在寻找的是可以容纳大量字符的东西,并简化了搜索字符串的过程.如果它允许我以任何方式标记字符串,甚至更好.此外,它应该有一些非常好的I/O性能.打印和格式化打印不是最重要的.我知道我不应该指望一个库为我做所有的工作,但是如果那里有一个记录良好的字符串函数可以节省我一些时间和一些工作只是徘徊.

任何帮助是极大的赞赏.提前致谢!

编辑:我被问及我喜欢的许可证.任何类型的开源许可都可以,但最好是GPL(v2或v3).

EDIt2:我找到了betterString(bstring)库,它看起来很不错.良好的文档,小而多功能的功能,并且易于与c字符串混合.有没有关于它的好故事?我读到的唯一缺点是它缺乏Unicode(再次,读到这个,还没有看到它面对面),但其他一切似乎都很好.

EDIT3:另外,最好是纯C.

c string io search

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

在Rust中使用本地函数是否有任何负面的性能影响?

我最近意识到我可以在Rust中创建本地函数(函数中的函数).似乎是一种清理代码而不会污染文件功能空间的好方法.我在下面通过局部函数与"外部"函数的小样本:

fn main() {
    fn local_plus(x: i64, y: i64) -> i64 {
        x + y
    }
    let x = 2i64;
    let y = 5i64;

    let local_res = local_plus(x, y);
    let external_res = external_plus(x,y);
    assert_eq!(local_res, external_res);
}

fn external_plus(x: i64, y: i64)  -> i64 {
    x + y
}
Run Code Online (Sandbox Code Playgroud)

我想知道这样做是否有任何负面的性能影响?就像Rust每次运行包含函数时重新声明函数或占用一些不需要的函数空间一样吗?或者它几乎没有性能影响?

作为一点点,任何有关我如何能够找到答案的提示(通过阅读任何特定的文档或我可以使用的工具)都会受到欢迎.

memory runtime function rust

7
推荐指数
2
解决办法
140
查看次数

强制gvim打开同一窗口中的所有文件(使用带有cscope的gvim)

我想知道是否有人知道如何使gvim默认为将gvim打开的所有文件打开到同一个gvim实例中的行为.我知道有一些参数可以通过命令行发送给它来强制执行此操作,但我想知道是否有某些东西可以添加到.gvimrc文件而不是命令行参数.

原因是我正在使用gvim和cscope.所以我设置cscope使用gvim作为我的编辑器.但是我不知道如何或不允许(可能是前者)强制cscope允许我向编辑器发送参数.

解决这两个问题就足够了.

提前致谢.

vim editor cscope

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

在CLISP中列出目录

我一直在尝试查看CLISP中目录中所有文件的列表,但我只能获取目录中的所有非目录文件.

我目前正在使用cygwin在Windows 7中尝试此操作,因此这可能会影响我的结果.我对CLISP(和所有人的LISP)都很陌生,而我目前正在尝试做的事情如下:

(directory (make-pathname :directory
'(:absolute "cygdrive" "c" "Download")
:name :wild))
Run Code Online (Sandbox Code Playgroud)

这成功地返回"C:\ Download"中的所有非目录文件.但是,它不会返回目录.我已经搜遍了所有Common Lisp引用指向使用"目录",但似乎我不可能没有Common Lisp(或者只是CLISP?)方式来解决目录中的所有文件.

任何帮助,将不胜感激.提前致谢!

lisp directory clisp common-lisp

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

Rust Borrow checker仅在返回具有相同生命周期分配的引用的函数时,多次抱怨多次借用mutable

我遇到一些Rust代码的问题,我被允许在某些条件下(第一个令人困惑的部分)不止一次地借用一些东西,而不是其他东西.

我写了下面的例子来说明:( 游乐场)

struct NoLifetime {}
struct WithLifetime <'a> {
    pub field: &'a i32
}

fn main() {
    let mut some_val = NoLifetime {};
    borrow_mut_function(&mut some_val);
    borrow_mut_function(&mut some_val); // Borrowing as mutable for the second time.

    let num = 5;
    let mut life_val = WithLifetime { field: &num };
    borrow_lifetime(&mut life_val);
    borrow_lifetime(&mut life_val); // Borrowing as mutable for the second time.

    let num_again = borrow_lifetime(&mut life_val); // Borrow, assign lifetime result
    borrow_lifetime(&mut life_val); // Compiler: cannot borrow `life_val` as …
Run Code Online (Sandbox Code Playgroud)

lifetime rust borrow-checker

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

标签 统计

rust ×2

borrow-checker ×1

c ×1

clisp ×1

common-lisp ×1

cscope ×1

directory ×1

editor ×1

function ×1

io ×1

lifetime ×1

lisp ×1

memory ×1

runtime ×1

search ×1

string ×1

vim ×1