【发布时间】:2013-03-13 22:12:11
【问题描述】:
例如,以下 C 代码是否有效?
typedef struct {
/* ... */
} foo;
typedef struct {
foo foo; /* Is it ok that 'foo' == 'foo'? */
} bar;
【问题讨论】:
-
你试过编译吗?
-
不要这样做,只是出于可读性的原因。即使声明一个字段
struct foo foo也是不可读的,即使是合法的。有一些易于理解(和猜测)的命名约定。 -
它可以工作 (liveworkspace.org/code/3vcKtX$2),它不可读,试试
foo_t或Foo之类的样式。 -
@TomerArazy 有时您会发现编译器的差异,或者有时是合法的,有时是不合法的情况。在这里尝试实际上有点错误。您将获得一种前所未有的信心,即您尝试过一次的方式就是它的工作方式。