在 C 中同时创建内部和外部链接

Simultaneously creating internal and external linkages in C

我正在阅读有关链接(外部、内部和 none)的 C 参考资料,并遇到以下内容:

If, within a translation unit, the same identifier appears with both internal and external linkage, the behavior is undefined.

我想知道这种未定义的行为是如何发生的。根据我的阅读,一个变量只能有一个存储class。所以不能同时声明staticextern

那么在什么情况下一个变量可以同时具有内联和外联?

在此代码中:

extern int x;
static int x;

第一个声明说 x 有外部链接,第二个声明说它有内部链接。