小编And*_*ind的帖子

C宏中的#x是什么意思?

例如,我有一个宏:

#define PRINT(int) printf(#int "%d\n",int)
Run Code Online (Sandbox Code Playgroud)

我知道结果是什么.但是为什么#int会重复整个事情呢?

我有点忘了这个细节.任何人都可以给我一个暗示吗?

谢谢!

c macros

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

仅当字符串存在于当前行时才替换

我有一条线,如:

sed -i 's/mystring/newstring/' $target
Run Code Online (Sandbox Code Playgroud)

此命令将全部更改mystringnewstring.

我现在想要的是:当程序看到时mystring,如果字符串searchstring存在,我如何检查当前行?如果它存在,newstring1; 否则newstring就是0.

linux shell sed

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

如何在Rust中访问枚举值?

struct Point {
    x: f64,
    y: f64,
}

enum Shape {
    Circle(Point, f64),
    Rectangle(Point, Point),
}

let my_shape = Shape::Circle(Point { x: 0.0, y: 0.0 }, 10.0);
Run Code Online (Sandbox Code Playgroud)

我想打印出circle第二个属性,这里是10.0.我试过my_shape.lastmy_shape.second,但既不工作.

在这种情况下,我该怎么办才能打印10.0?

rust

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

案例表达在Ruby 1.9中有所不同?

这是一本书中的示例代码.我认为它适用于Ruby 1.8.

    birthyear = 1986
    generation = case birthyear
        when 1946...1963: "Baby boomer"
        when 1964...1976: "Generation X"
        when 1977...2012: "new generation"
        else nil
    end

    puts generation
Run Code Online (Sandbox Code Playgroud)

我在Ruby 1.9上运行它,并收到此错误消息:

    Untitled 2.rb:12: syntax error, unexpected ':', expecting keyword_then or ',' or ';' or '\n'
    when 1946...1963: "Baby boomer"
                     ^
Untitled 2.rb:13: syntax error, unexpected keyword_when, expecting $end
    when 1964...1976: "Generation X"
Run Code Online (Sandbox Code Playgroud)

我应该怎么改变这个?

ruby

20
推荐指数
2
解决办法
7599
查看次数

C++类型unsigned long int

unsigned long int equivlant来unsigned long?在C++中

在我看来,他们是一样的.但是我看到有些人仍然在代码中使用unsigned long int.不明白为什么?任何人都可以帮我解释一下

#include <stdio.h>

int main() {
    unsigned long int num = 282672; 
    int normalInt = 5;
    printf("");
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

c c++

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

什么是.NET List.sort()的时间复杂度

什么是C#的时间复杂性 List<T>.Sort()

我想这是o(N)

但在我搜索了很多之后,我没有得到任何准确的结果.

.net c# time-complexity

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

如何在`git rm abc.c`之后恢复文件?

我应该删除另一个文件git rm abc.c.但我删除了一个错误的.我该如何恢复?

现在,当我发行时git status,它说

deleted:   abc.c
Run Code Online (Sandbox Code Playgroud)

顺便说一句,我现在有其他未提交的更改.

git git-rm

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

我应该在哪里放一个.vim插件?

这是文件:https: //github.com/mozilla/rust/blob/master/src/etc/vim/syntax/rust.vim

这是为了生锈[来自Mozilla的一种新语言]语法高亮(?)在VIM中它们实际上提供了3 .vim文件.我应该把它们放在哪里?

vi

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

理解Common Lisp做宏语法

(do ((n 0 (1+ n))
     (cur 0 next)
     (next 1 (+ cur next)))
    ((= 10 n) cur)))
Run Code Online (Sandbox Code Playgroud)

这是Lisp教科书中关于关键字"do"的一个例子

"do"基本模板是:

(do (variable-definitions*)
    (end-test-form result-form*)
 statement*)
Run Code Online (Sandbox Code Playgroud)

但是,对于这个例子,我不清楚哪个部分是哪个部分.而且,中间2行有什么作用?

谢谢!

lisp iteration common-lisp

9
推荐指数
2
解决办法
7192
查看次数

C,位移.连续2班

static inline void ext4_ext_store_pblock(struct ext4_extent *ex,
                     ext4_fsblk_t pb)
{
    ex->ee_start_lo = cpu_to_le32((unsigned long) (pb & 0xffffffff));
    ex->ee_start_hi = cpu_to_le16((unsigned long) ((pb >> 31) >> 1) &
                      0xffff);
}
Run Code Online (Sandbox Code Playgroud)

这段代码来自linux内核.见最后一行.它确实pb >> 31然后>> 1这与pb相同>> 32为什么不这样做?

谢谢

编辑:谢谢大家.发送补丁到ext4 maillist

c

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

标签 统计

c ×3

.net ×1

c# ×1

c++ ×1

common-lisp ×1

git ×1

git-rm ×1

iteration ×1

linux ×1

lisp ×1

macros ×1

ruby ×1

rust ×1

sed ×1

shell ×1

time-complexity ×1

vi ×1