小编Axe*_*xel的帖子

Git的奇怪行为:神秘的变化无法撤消

我在Git中看到一种对我来说非常神秘的行为.我保留了从Github克隆的Linux存储库,以便在本地使用Git.为了清楚起见,我在这个存储库中做的不多:我获取更改,更新master,签出特定版本,有时我会尝试使用Git GUI来查看大型项目中可视化的外观.TLDR版本:我从未对其中的文件进行任何更改.

奇怪的行为

今天早些时候,我签出master并从Github取消了更改.一切似乎都没事.但我怀疑它实际上没有.这就是现在的git status样子.

axel@macbook ~/Depots/linux $ git status
# On branch master
# Changes not staged for commit:
#   (use "git add <file>..." to update what will be committed)
#   (use "git checkout -- <file>..." to discard changes in working directory)
#
#   modified:   include/linux/netfilter/xt_connmark.h
#   modified:   include/linux/netfilter/xt_dscp.h
#   modified:   include/linux/netfilter/xt_mark.h
#   modified:   include/linux/netfilter/xt_rateest.h
#   modified:   include/linux/netfilter/xt_tcpmss.h
#   modified:   include/linux/netfilter_ipv4/ipt_ecn.h
#   modified:   include/linux/netfilter_ipv4/ipt_ttl.h
#   modified:   include/linux/netfilter_ipv6/ip6t_hl.h
#   modified: …
Run Code Online (Sandbox Code Playgroud)

linux git macos git-checkout

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

从未定义结构

在C中使用未定义的结构有什么好处吗?

SQLite源代码中的示例:

/* struct sqlite3_stmt is never defined */
typedef struct sqlite3_stmt sqlite3_stmt;
Run Code Online (Sandbox Code Playgroud)

对象被操纵如下:

typedef struct Vdbe Vdbe;
struct Vdbe {
    /* lots of members */
};


int sqlite3_step(sqlite3_stmt *pStmt) {
    Vdbe *v = (Vdbe*) pStmt;
    /* do stuff with v... */
}
Run Code Online (Sandbox Code Playgroud)

那么,为什么不直接使用通常的抽象类型,在私下定义的实际结构foo.c源和公众typedeffoo.h头?

c struct typedef

12
推荐指数
2
解决办法
1590
查看次数

标签 统计

c ×1

git ×1

git-checkout ×1

linux ×1

macos ×1

struct ×1

typedef ×1