小编Kos*_*tas的帖子

在Mercurial中撤消删除操作

假设我在工作目录中做了一些更改,并意外地标记了几个文件(包括一些修改过的文件)以便删除.如何在不丢失我所做的更改的情况下取消标记要删除的文件?

mercurial

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

Git相当于"hg id"?

Git有没有相当于Mercurial的"hg id"的命令?即如果工作目录中有更改,则打印父提交的哈希和加号的命令?

git version-control mercurial dvcs

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

为具有简单类型成员的结构生成协作图

我有一个C项目,我用doxygen记录.我还使用graphviz为我的结构生成协作图.问题是,对于结构,其成员是简单类型(int,float等)或其成员是在项目外定义的(并通过包含文件包含),不会生成协作图.

如何强制doxygen为这些结构生成图表?

例如,假设我有以下结构:

/** This is my simple struct. */
typedef struct 
{
    /** A member */
    int a_member;

    /** Another member */
    int another_member;
} my_simple_struct_t;
Run Code Online (Sandbox Code Playgroud)

如果您有这样的结构,Doxygen将不会生成协作图(它将为结构提供文档条目).如何强制它创建一个并显示它是两个整数的结构?

doxygen

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

在宏中使用开/闭大括号来强制 C 中的配对

假设我有一个要求,如果一个操作是在一个作用域内执行的,那么它必须在同一个作用域内被撤销。一个例子是进入和离开关键部分。

为了强制用户使用成对的 do - undo 操作,定义了一对使用左大括号和右大括号的宏:

#define BEGIN \
{ \
    do_something();

#define END \
    undo_something(); \
}
Run Code Online (Sandbox Code Playgroud)

当然,“恶意”编码器可以通过多种方式欺骗这些宏(例如,通过添加左大括号或右大括号),但通常这有助于记住 a 后面BEGIN必须跟有END. 此外,例如,如果BEGIN注释掉现有的,编译器会抱怨,表明END也必须将其删除。

我看到这是几个内部项目。正如我所说,它并不能提供 100% 的保护,但这种做法是否会被证明有害呢?这是众所周知的做法吗?

c macros c-preprocessor

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

标签 统计

mercurial ×2

c ×1

c-preprocessor ×1

doxygen ×1

dvcs ×1

git ×1

macros ×1

version-control ×1