假设我在工作目录中做了一些更改,并意外地标记了几个文件(包括一些修改过的文件)以便删除.如何在不丢失我所做的更改的情况下取消标记要删除的文件?
Git有没有相当于Mercurial的"hg id"的命令?即如果工作目录中有更改,则打印父提交的哈希和加号的命令?
我有一个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将不会生成协作图(它将为结构提供文档条目).如何强制它创建一个并显示它是两个整数的结构?
假设我有一个要求,如果一个操作是在一个作用域内执行的,那么它必须在同一个作用域内被撤销。一个例子是进入和离开关键部分。
为了强制用户使用成对的 do - undo 操作,定义了一对使用左大括号和右大括号的宏:
#define BEGIN \
{ \
do_something();
#define END \
undo_something(); \
}
Run Code Online (Sandbox Code Playgroud)
当然,“恶意”编码器可以通过多种方式欺骗这些宏(例如,通过添加左大括号或右大括号),但通常这有助于记住 a 后面BEGIN
必须跟有END
. 此外,例如,如果BEGIN
注释掉现有的,编译器会抱怨,表明END
也必须将其删除。
我看到这是几个内部项目。正如我所说,它并不能提供 100% 的保护,但这种做法是否会被证明有害呢?这是众所周知的做法吗?