C语言
C语言的特色之一是：语言不负责内存边界检查，这是因为在运行时进行内存边界检查会造成性能问题，与UNIX哲学不符。此特性容易导致缓冲区溢出问题。然而，部分编译器（如英特尔编译器）会出于安全性的考量，提供方法以进行运行时内存边界检查。
C与C++的兼容性
这是因为在C语言中，struct类型前需要添加“struct”，而在这个例子中，因为T前没有struct，所以它所代表的是在外部定义的int变量；而在C++中，因为可以省略struct，因此造成了歧义。然而，在C++中如果使用这种形式，编译器会更倾向于认为T是一个表达式，因此编译会出错；而在C语言中则不会。