C语言
C语言的特色之一是：语言不负责内存边界检查，这是因为在运行时进行内存边界检查会造成性能问题，与UNIX哲学不符。此特性容易导致缓冲区溢出问题。然而，部分编译器（如英特尔编译器）会出于安全性的考量，提供方法以进行运行时内存边界检查。
Visual C++名字修饰
目前，C语言常用的调用协议有三种：cdecl, stdcall与fastcall，其它众多调用协议如__pascal, __fortran, __syscall, __far等基本上算是过时了(obsolote)，因此无需考虑。cdecl的函数被改名为_name；stdcall的函数被改名为_name@X；fastcall的函数被改名为@name@X。其中X是函数形参所占用的字节长度(包括那些用寄存器传递的参数, 如fastcall协议). 例如： int __cdecl foo(int i); // mangled name is _foo; int __stdcall bar(int j); // mangled name is _bar@4  int __fastcall qux(int i) ; // mangled name is @qux@4  注意在64位Windows平台上，由于ABI有正式标准可依，只存在一种子程序调用协议，所以该平台上的C语言的函数不在名字前加上下划线(leading underscore). 这会导致一些老的程序(legacy program), 例如使用'alias'去链接C语言的函数的Fortran程序不能正常工作。